azuma, kuniyuki > Haineko-0.2.16 > Haineko::SMTPD::Relay::MX

Download:
Haineko-0.2.16.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

NAME ^

Haineko::SMTPD::Relay::MX - ESMTP Connection class for sending server listed in MX record or A record

DESCRIPTION ^

Send an email to external server listed in MX resource record or A resource record using SMTP protocol.

SYNOPSIS ^

    use Haineko::SMTPD::Relay::MX;
    my $h = { 'Subject' => 'Test', 'To' => 'neko@example.org' };
    my $v = { 
        'ehlo' => '[127.0.0.1]',
        'mail' => 'kijitora@example.jp',
        'rcpt' => 'neko@example.org',
        'head' => $h,
        'body' => 'Email message',
    };
    my $e = Haineko::SMTPD::Relay::MX->new( %$v );
    my $s = $e->sendmail;

    print $s;                   # 0 = Failed to send, 1 = Successfully sent
    print $e->response->error;  # 0 = No error, 1 = Error
    print $e->response->dsn;    # returns D.S.N. value

    warn Data::Dumper::Dumper $e->response;
    $VAR1 = bless( {
             'dsn' => '2.1.0',
             'error' => 0,
             'code' => '250',
             'host' => 'mx1.example.org',
             'port' => 25,
             'rcpt' => 'neko@example.org',
             'message' => [
                    '2.0.0 OK Authenticated',
                    '2.1.0 <kijitora@example.jp>... Sender ok'
                      ],
             'command' => 'QUIT'
            }, 'Haineko::SMTPD::Response' );

    ``host'' property and ``port'' property will be ignored even if it is defined
    in etc/mailertable or etc/sendermt. The host is decided by DNS lookup and then
    try to send the host listed in MX resource records. 
    
    If Haineko could not connected to the hosts listed in MX, Haineko trys to connect
    the host listed in A resource record.

    ``port'' property is always ``25'', ``auth'' and ``starttls'' property is also
    ignored in this class.

CLASS METHODS ^

new( %arguments )

new() is a constructor of Haineko::SMTPD::Relay::MX

    my $e = Haineko::SMTPD::Relay::MX->new( 
            'timeout' => 59,                # Timeout for Net::SMTP
            'debug' => 0,                   # Debug for Net::SMTP
            'attr' => {                     # Args for Email::MIME
                'content_type' => 'text/plain'
            },
            'head' => {                     # Email header
                'Subject' => 'Test',
                'To' => 'neko@example.org',
            },
            'body' => 'Email message',      # Email body
            'mail' => 'kijitora@example.jp',# Envelope sender
            'rcpt' => 'cat@example.org',    # Envelope recipient
    );

INSTANCE METHODS ^

sendmail

sendmail() will send email to the specified recipient via specified host.

    my $e = Haineko::SMTPD::Relay::MX->new( %argvs );
    print $e->sendmail;         # 0 = Failed to send, 1 = Successfully sent
    print Dumper $e->response;  # Dumps Haineko::SMTPD::Response object

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.

syntax highlighting: