The MQ_Connection structure is passed to all callbacks dealing with SMTP connections. It allows your plugin to find out information about the connection, and to send data over the connection.
There is a whole list of functions that your plugin can export that deal with connections.
|mq_smtp_in_connect()||Called after an incoming TCP connection is established. This is the first time that the MQ_Connection is passed to the plugin, and a good place for per-connection initialization code.|
|mq_smtp_in_secure()||Called when the STARTTLS instruction is received and the connection is turned into a secure connection|
|mq_smtp_in_authenticate()||Called when the SMTP client sends the login+password credentials. Allows you to run your own authentication checks.|
|mq_smtp_in_mailfrom()||Called when the "MAIL FROM" command is received|
|mq_smtp_in_rcptto()||Called when the "RCPT TO" command is received|
|mq_smtp_in_data()||Called when the "DATA" command is received|
|mq_smtp_in_message()||Called when a message is received. When multiple "RCPT TO" addresses were given, this function is called once for each address.|
|mq_smtp_in_close()||Called after an incoming SMTP connection is closed. This is the last time that the MQ_Connection is passed to the plugin. You can use this function for cleanup code.|
The above functions are only called for MQ_Connection pointers that represent incoming connections.
All members in the MQ_Connection structure are private. To interact with the structure the following accessor functions have been created.
|MQ_fileDescriptor()||Retrieve the filedescriptor linked to a connection|
|MQ_send()||Send data over a SMTP connection|
|MQ_authenticated()||Returns whether this is an authenticated connection|
|MQ_setAuthenticated()||Mark a connection as an authenticated connection|
|MQ_secure()||Returns whether this is a secure TLS connection|
|MQ_connectionData()||Retrieve the data that is associated with the SMTP connection|
|MQ_setConnectionData()||Associated data with the SMTP connection|
In this blog post, we will dive deeper into the world of bounces, one of the most important - and maybe most frustrating - terms in un...
One of our favourite tools in MailerQ is tags. With tags, you can do a lot on an individual delivery level - or on any level ...