我试图在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);
}