通过`MIME :: Lite`发送的电子邮件包含进入垃圾邮件的超链接

时间:2016-12-20 06:25:01

标签: html perl

我正在尝试使用MIME:Lite发送HTML电子邮件,我想通过它发送超链接。当我发送它没有超链接时,它转到Inbox但是通过超链接进入Junk。这是我的代码。

#!/grid/common/pkgs/perl/latest/bin/perl

use MIME::Lite;
$to = 'gpreeti@xyz.com';
$cc = 'mohitsha@xyz.com';
$from = 'gpreeti@xyz.com';
$subject = 'Test Email';
my $message = <<END ;
<p> Hi, can you this Link in your inbox</p>
<a href='http://etpv/cgi-bin/status_tracker/tracksql.cgi?curr_tab=inbox'>Click here to view it</a>
<br ><br >
<p>Thanks,<br >Preeti</p>
END
$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );

$msg->attr("content-type" => "text/html");
$msg->send;
print "Email Sent Successfully\n";

任何人都可以建议如何做到这一点?

1 个答案:

答案 0 :(得分:0)

I have referred from this site

你可以选择。首先,您可以发送包含URL的纯文本附件。正如doward所解释的那样,大多数现代邮件程序都会识别URL并在显示邮件时将其转换为可点击的链接。在这种情况下,您的邮件如下所示:

String input = "{\"name\":\"tom\",\"email\":\"tom@email.com\"}";

ClientResponse response = webResource.type("application/json")
       .post(ClientResponse.class, input);

这是它在纯文本中工作的唯一方式。您可以只包含URL并依赖邮件程序使其可以点击。

或者,您可以创建包含真实标记的邮件的HTML版本。在这种情况下,您的邮件看起来像这样:

my $message_body = <<END_OF_BODY;
This is a list of things to bring
* Fresh flowers from Flowershop X
    http://www.example.com/flowers

* Today's Arrangement instructions from instruction home page
    http://www.example.com/arrangement/
END_OF_BODY

在第二个示例中,您需要将附件的内容类型设置为&#39; text / html&#39;以便显示它的邮件程序知道如何对待它。

正如有几个人在这个帖子中提到的,如果你想要HTML邮件,那么最好的方法是有两个附件,其中一个是HTML版本,另一个是纯文本版本。在这种情况下,您需要了解您的邮件构建模块(我只能再次重复我对Perl电子邮件项目的建议)如何构建具有多个附件的MIME邮件。