---
name: "Qpsmtpd::Connection"
section: "3pm"
platform: "linux"
package: "qpsmtpd"
version: "0.94-8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Qpsmtpd::Connection"
---

# Qpsmtpd::Connection(3pm)

A single SMTP connection

## NAME

Qpsmtpd::Connection - A single SMTP connection

## SYNOPSIS

```
  my $rdns = $qp->connection->remote_host;
  my $ip = $qp->connection->remote_ip;
```

## DESCRIPTION

This class contains details about an individual SMTP connection. A connection lasts the lifetime of a TCP connection to the SMTP server.

See also Qpsmtpd::Transaction which is a class containing details about an individual SMTP transaction. A transaction lasts from `"MAIL FROM"` to the end of the `"DATA"` marker, or a `"RSET"` command, whichever comes first, whereas a connection lasts until the client disconnects.

## API

These API docs assume you already have a connection object. See the source code if you need to construct one. You can access the connection object via the `"Qpsmtpd"` object's `"$qp->connection"` method.

### new ( )

Instantiates a new Qpsmtpd::Connection object.

### start ( %args )

Initializes the connection object with `%args` attribute data.

### remote\_host( )

The remote host connecting to the server as looked up via reverse dns.

### remote\_ip( )

The remote IP address of the connecting host.

### remote\_port( )

The remote port.

### remote\_info( )

If your server does an ident lookup on the remote host, this is the identity of the remote client.

### local\_ip( )

The local ip.

### local\_port( )

The local port.

### hello( )

Either `"helo"` or `"ehlo"` depending on how the remote client greeted your server.

NOTE: This field is empty during the helo or ehlo hooks, it is only set after a successful return from those hooks.

### hello\_host( )

The host name specified in the `"HELO"` or `"EHLO"` command.

NOTE: This field is empty during the helo or ehlo hooks, it is only set after a successful return from those hooks.

### notes($key \[, $value\])

Get or set a note on the connection. This is a piece of data that you wish to attach to the connection and read somewhere else. For example you can use this to pass data between plugins.

### clone(\[%args\])

Returns a copy of the Qpsmtpd::Connection object. The optional args parameter may contain:

- no\_reset (1\|0)

  If true, do not reset the original connection object, the author has to care about that: only the cloned connection object is reset at the end of the  connection

### relay\_client( )

True if the client is allowed to relay messages.
