當前位置:編程學習大全網 - 源碼下載 - 如何用Perl發送郵件

如何用Perl發送郵件

使用Perl發送郵件的方式有很多種,可以隨便數的有:

郵件,

sendmail,

Mail::Mailer,

啞劇::精簡版

等壹下。這些方法都可以實現郵件的發送,視場合而定。

1.郵件模式

這種調用系統命令的方式,是最簡單的方式(可用我個人測試)

my $ mail _ title = " test _ mail

my $mail_body = "ffmpeg錯誤";

my $ mail _ to = ' xxxxxx @ qq.com

my $ cmd _ mail = " echo $ mail _ body \ | mail-s $ mail _ title-CB $ mail _ to ";

系統($ cmd _ mail);

2.郵件::郵件模式

#!/usr/bin/perl

使用Mail::Mailer;

my $ from _ address =“”;

my $ to _ address = ' xxxxxxxx @ QQ . com & gt;';

my $subject = "郵件標題";

my $mail_body = "hello world!";

my $ Mailer = Mail::Mailer-& gt;new(" sendmail ");

我的$ mailer-& gt;打開({ From = & gt$from_address,

To = & gt$to_address,

Subject = & gt$subject,

})或者死("打不開:$!\ n ");

print $ mailer $ mail _ body

$ mailer-& gt;close();

3.MIME::Lite模式

通過普通郵件發送(我自己通過測試)。

#!/usr/bin/perl

使用MIME::Lite;

使用MIME::Words qw(encode _ MIME Words);

my $subject = encode_mimewords("測試郵件",' Charset ',' GB 2312 ');

my $ data = " test

my $ to _ address = ' xxxxxxx @ QQ . com ';

my $ msg = MIME::Lite-& gt;新(

From = & gtroot@localhost ',

To = & gt$to_address,

Subject = & gt$subject,

Type = & gt文本/html ',

Data = & gt$data,

編碼= & gtbase64 ',

)或die“創建容器失敗:$!”;

$ msg-& gt;attr(' content-type . charset ' = & gt;GB 2312’);

$ msg-& gt;send('smtp ',' localhost ',Debug = & gt0);

如果上述程序遇到以下錯誤提示:

SMTP mail()命令失敗:

5 . 5 . 4 & lt;root @ localhost & gt...發件人地址需要真實域名

您需要檢查您主機名,

#卡特彼勒/etc/主機

並將“root@localhost”替換為“root@hostname”。

此外,還可以使用MIME::Lite發送中文HTML郵件,防止被ESP查殺為垃圾郵件。

(摘自',

To = & gt$to_address,

Subject = & gt$subject,

Type = & gt文本/html ',

Data = & gt$data,

編碼= & gtbase64 ',

)或die“創建容器失敗:$!”;

$ msg-& gt;attr(' content-type . charset ' = & gt;GB 2312’);

$ msg-& gt;send('smtp ',' localhost ',Debug = & gt0);

}

幾個常識點:

A.標題必須用MIME::Words編碼,這是很多人忽略的。

B.MIME::Lite構造字母時,不要搞錯類型。比如只是壹封沒有附件的HTML郵件,類型是text/html。

21CN的webmail郵件,不管有沒有附件,類型都是multipart/mixed,結果直接被Gmail扔進垃圾箱。

C.要選擇信件的傳輸編碼,通常使用base64和quoted-printable。我推薦base64。

D.應該正確設置信件正文的內容類型字符集,例如中文GB2312。

E.最後壹句$ msg-& gt;send('smtp ',' localhost ',Debug = & gt0)調用Net::SMTP發送消息。只要在這臺機器上安裝MTA如Postfix。這個發送IP最好是壹個信譽好的,不在RBL列表如sorbs,spamcop,spamhaus等中的IP。

F.發送IP最好有反向解析(PTR),否則肯定無法發送AOL之類的郵件來驗證反向解決方案。

G.最好發件人地址確實存在,但是不要用知名網站的免費郵箱,比如From = & gtAbc@126.com ',那就基本發不出去了。

為什麽?因為SPF是在126.com上設置的,接收方的MTA很可能會驗證這個SPF。當然,妳的IP不在126的SPF裏,所以無法通過驗證。

變量h. $data包含信件正文的HTML代碼。這個正文不能有太多的鏈接和圖片,否則很容易被Spamassassin等反垃圾軟件查殺。

我最後,控制發送的頻率。大量發送會向所有反垃圾郵件系統報警,將妳列入黑名單。

4.郵件::發送郵件模式

  • 上一篇:圖解k線中的5日,35日,135日均線
  • 下一篇:矩陣計算方法法則
  • copyright 2024編程學習大全網