我正在使用MIME::Lite
发送电子邮件。我不是批量发邮件。我有以下代码来发送邮件。
my $msg = MIME::Lite->new(
To => "$recipient_address",
From => "$sender_displayname <$sender_email>",
Subject => "$subject",
Type => "multipart/alternative",
);
my $att_text = MIME::Lite->new(
Type => 'text',
Data => $message_body_plain,
Encoding => 'quoted-printable',
);
$att_text->attr('content-type' => 'text/plain; charset=UTF-8');
$msg->attach($att_text);
my $att_html = MIME::Lite->new(
Type => 'text',
Data => $message_body_html,
Encoding => 'quoted-printable',
);
$att_html->attr('content-type' => 'text/html; charset=UTF-8');
$msg->attach($att_html);
当我发送邮件时,在 Google 等少数域中,电子邮件会进入垃圾邮件文件夹,而在 Yahoo 中,邮件会出现在 INBOX 。我用Google搜索并阅读了Google提供的文档,发现如果电子邮件中包含 seigned-by / 邮寄标题,则电子邮件不会被垃圾邮件过滤器过滤。
以下是我提到的文字:
身份验证过程会尝试通过查看验证真实的发件人 在消息的验证数据。这些数据应包含在a中 消息的“签名”或“邮寄”标题(显示在。下方) 查看邮件详细信息时的主题行。当发件人 不包含这些数据,我们无法确定是否有消息 是伪造的。例如,邮件可能声称来自Gmail 地址,但如果邮件没有,我们无法确认该声明 认证数据。
请帮忙!
答案 0 :(得分:1)
支持Pathak,这与Perl无关。
但无论如何,我会尝试包括:
my $msg = MIME::Lite->new(
"-Mailed-by" => 'real.mailaccount@sending-mailserver.com',
...
确保此邮件地址(和/或发件人邮件地址)确实存在,最好是在您正在使用的SMTP服务器上
$msg->send('smtp', 'smtp.sending-mailserver.com')
#(or as part of sendmail on 'nix)
这通常会为您提供更少的垃圾点数&#34;如果您尝试发送带有yahoo.com邮件地址的邮件,例如gmail.com smtp服务器,或者使用来自特定公司的电子邮件地址的公共smtp服务器。
还要向Google介绍如何避免陷入垃圾邮件,例如: http://mailchimp.com/resources/guides/how-to-avoid-spam-filters/html/