当我添加传输时,email :: sender无法正常工作

时间:2019-11-12 18:49:24

标签: perl email

我试图在Linux RH 7.7框上使用email :: Sender,其中要包含传输信息。在旧的MIME :: Lite版本中,将SMTP主机设置为mailhost并设置好电子邮件,我们需要做的所有事情,但是使用Email :: Sender :: Transport :: SMTP-> new()时,您还需要设置端口号。如果我在sendmail()中不进行$ transport调用,它将正常工作。我们的SA说端口号应该是25,但是当我尝试25时,我会收到“拒绝中继访问”。网上有很长篇幅有关可能导致这种情况的文章,但我不是SA,因此无法查看其中的任何内容。

那么,如何找到用于邮件主机的端口号,我知道这是Linux默认设置?我尝试使用端口25、2525、587,但都失败了。我的SA不知道发生了什么或如何解决失败的问题。所有的教程和代码示例都只是在执行host = $ stmp或port = $ port,但这并不是真的有用。

use Email::Sender::Simple qw(sendmail);
use Email::Simple;
use Email::Simple::Creator;
use Email::Sender::Transport::SMTP qw();
use Try::Tiny;

try {
    # Create the email message
    my $email = Email::Simple->create(
        header => [
            To      => $emailNames,
            From    => 'MMSUser@ecs.nasa.gov',
            Subject => $configFile{'email'}{$type}{'subject'},
        ],
        body => $message,
    );

    my $transport = Email::Sender::Transport::SMTP->new({
        host => 'mailhost',
        port => 25,
    });

    # send the email
    sendmail($email, { transport => $transport });
    } catch {
    my $logMsg = "TUT email to SA Failed:  $_";
    my @exceptionMsg = split(/\n/, $_);
    my $emsg = "TUT email to SA Failed:  $exceptionMsg[0]";
    WriteEvent("A", $logMsg, $emsg);
}

0 个答案:

没有答案