我正在使用Perl
Mime::Lite
module
使用发送电子邮件到我订阅的邮件列表
DomainKeys Identified Mail (DKIM)
和
Sender Policy Framework (SPF)
记录:
use MIME::Lite;
use Net::SMTP;
my $host = 'mail.domain.com';
my $user = 'user@domain.com';
my $pass = 'password1234';
MIME::Lite->send('smtp', $host, AuthUser => $user, AuthPass => $pass);
my $msg = MIME::Lite->new(
From => $from,
To => $to,
Subject => $subject_enc,
Type => 'text/plain; charset=UTF-8',
Encoding => 'quoted-printable',
Data => 'Hello everyone!'
);
$msg->send;
这很好用,但DKIM签名在Gmail中失败了(可能是其他人)。
但是,当我发送没有SMTP身份验证的电子邮件时:
use MIME::Lite;
my $msg = MIME::Lite->new(
From => $from,
To => $to,
Subject => $subject_enc,
Type => 'text/plain; charset=UTF-8',
Encoding => 'quoted-printable',
Data => 'Hello everyone!'
);
$msg->send;
DKIM通过罚款。
所以我的问题是:如果我在所有外发电子邮件中成功实施了DKIM和SPF记录,是否有必要使用SMTP身份验证来验证电子邮件的发件人,或者是否与Sendmail
适当的标题足以确保最佳的交付机会?
答案 0 :(得分:1)
本地身份验证不会增加邮件的可信度,但也不会对其造成任何伤害。它会以任何方式显示在您的Received
标题中,并且您可能会被垃圾邮件过滤器标记下来(他们可能更感兴趣的是是否有任何跳转未加密,这与auth无关)。
你使用auth不应该对DKIM产生任何影响 - 但是有什么不同之处在于你的DKIM签名发生在哪里(如果你的本地邮件服务器签名但你的远程服务器没有签名)。 Mail :: Lite包是否自己进行DKIM签名?或者你依靠你的服务器来做到这一点?收到邮件中的标题会显示已签署的内容,并且还可以为您提供有关DKIM签名确切错误的一些线索 - 如果您在问题中添加了gmail标题,这将非常有用。
单独关注的是性能 - 通过sendmail二进制文件提交效率相对较低 - 所有sendmail二进制文件都打开了与localhost的同步SMTP连接,所以你也可以直接这样做 - 这就是postfix推荐的内容。