NAME
Haineko::SMTPD::Milter::Example - Haineko milter for Example
DESCRIPTION
Example Haineko::SMTPD::Milter class.
SYNOPSIS
use Haineko::SMTPD::Milter;
Haineko::SMTPD::Milter->import( [ 'Example' ]);
IMPLEMENT MILTER METHODS (Override Haineko::SMTPD::Milter)
Each method is called from /submit at each phase of SMTP session. If you want to reject the smtp connection, set required values into Haineko::SMTPD::Response object and return 0 or undef as a return value of each method. However you want to only rewrite contents or passed your contents filter, return 1 or true as a return value.
conn( Haineko::SMTPD::Response, REMOTE_HOST, REMOTE_ADDR )
conn() method is for checking a client hostname and client IP address.
Arguments
Haineko::SMTPD::Response object
If your milter program rejects a message, set 1 by ->error(1), set error message by ->message( [ 'Error message' ]), and override SMTP status code by ->code(), Default SMTP status codes is 421 in this method.
REMOTE_HOST
The host name of the message sender, as picked from HTTP REMOTE_HOST variable.
REMOTE_ADDR
The host address, as picked from HTTP REMOTE_ADDR variable.
ehlo( Haineko::SMTPD::Response, HELO_HOST )
ehlo()
method is for checking a hostname passed as an argument of EHLO.
Arguments
Haineko::SMTPD::Response
object
If your milter program rejects a message, set 1 by ->error(1), set error message by ->message( [ 'Error message' ]), and override SMTP status code by ->code(), override D.S.N value by ->dsn(). Default SMTP status codes is 521 in this method.
HELO_HOST
Value defined in ehlo
field in HTTP POST JSON data, which should be the domain name of the sending host or IP address enclosed square brackets.
mail( Haineko::SMTPD::Response, ENVELOPE_SENDER )
mail()
method is for checking an envelope sender address.
Arguments
Haineko::SMTPD::Response
object
If your milter program rejects a message, set 1 by ->error(1), set error message by ->message( [ 'Error message' ]), and override SMTP status code by ->code(), override D.S.N value by ->dsn(). Default SMTP status codes is 501, dsn is 5.1.8 in this method.
ENVELOPE_SENDER
Value defined in mail
field in HTTP POST JSON data, which should be the valid email address.
rcpt( Haineko::SMTPD::Response, [ ENVELOPE_RECIPIENTS ] )
rcpt()
method is for checking envelope recipient addresses. Envelope recipient addresses are password as an array reference.
Arguments
Haineko::SMTPD::Response
object
If your milter program rejects a message, set 1 by ->error(1), set error message by ->message( [ 'Error message' ]), and override SMTP status code by ->code(), override D.S.N value by ->dsn(). Default SMTP status codes is 553, dsn is 5.7.1 in this method.
ENVELOPE_RECIPIENTS
Values defined in rcpt
field in HTTP POST JSON data, which should be the valid email address.
head( Haineko::SMTPD::Response, { EMAIL_HEADER } )
head()
method is for checking email header. Email header is password as an hash reference.
Arguments
Haineko::SMTPD::Response
object
If your milter program rejects a message, set 1 by ->error(1), set error message by ->message( [ 'Error message' ]), and override SMTP status code by ->code(), override D.S.N value by ->dsn(). Default SMTP status codes is 554, dsn is 5.7.1 in this method.
EMAIL_HEADER
Values defined in "header" field in HTTP POST JSON data.
body( Haineko::SMTPD::Response, \EMAIL_BODY )
boby()
method is for checking email body. Email body is password as an scalar reference.
Arguments
Haineko::SMTPD::Response
object
If your milter program rejects a message, set 1 by ->error(1), set error message by ->message( [ 'Error message' ]), and override SMTP status code by ->code(), override D.S.N value by ->dsn(). Default SMTP status codes is 554, dsn is 5.6.0 in this method.
EMAIL_BODY
Value defined in "body" field in HTTP POST JSON data.
SEE ALSO
https://www.milter.org/developers/api/
REPOSITORY
https://github.com/azumakuniyuki/Haineko
AUTHOR
azumakuniyuki <perl.org [at] azumakuniyuki.org>
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.