Perl傳送郵件

2021-06-21 22:53:24 字數 2381 閱讀 3364

本文簡單的介紹一下使用perl傳送郵件的方法,我們以使用163的smtp伺服器來傳送郵件為例,因為需要使用者驗證,所以前提是我們有163的郵件賬戶。如果**中使用到的perl模組你沒有安裝,那麼執行的時候就會報錯,關於perl模組的安裝方法,參照這裡。

#!/usr/bin/perl -w

use strict;

use net::smtp_auth;

#smtp郵件伺服器和埠

my $smtphost = 'smtp.163.com';

my $smtpport = '25';

my $sslport = '465';

#smtp伺服器認證使用者名稱密碼(就是你登陸郵箱的時候的使用者名稱和密碼)

my $username = '[email protected]';

my $passowrd = 'password';

#郵件來自哪兒,要去哪兒,郵件標題

my $from = '[email protected]';

my $to 

= '[email protected]';

my $subject = '[notice]測試郵件';

#設定郵件header

my $header = << "mailheader";

from:$from

to:$to

subject:$subject

mime-version:1.0

content-type:text/plain;charset="utf-8"

content-trensfer-encoding:7bit

mailheader

#設定郵件內容

my $message = << "mailbody";

在這裡寫郵件的內容。

你好,這是來自$from的測試郵件。

mailbody

#獲得郵件網域名稱部分,用於連線的時候表名身份

my @helo = split /\@/,$from;

#連線smtp伺服器,明文/ssl/tls三種方式,根據你使用的smtp支援情況選擇一種

#後2種暫時被我注釋了,兩個=cut之間的就是被注釋的

#普通方式,通訊過程不加密

my $smtp = net::smtp_auth->new(

"$smtphost:$smtpport",

hello 

=> $helo[1],

timeout => 30

) or die("error:連線到$smtphost失敗!");

$smtp->auth('login',$username,$passowrd) or die("error:認證失敗!");

=cut

#tls加密方式,通訊過程加密,郵件資料安全,使用正常的smtp埠

use net::smtp::tls;

my $smtp = net::smtp::tls->new(

"$smtphost:$smtpport",

user 

=> $username,

password => $passowrd,

hello 

=> $helo[1],

timeout  => 30

) or die "error:通過tls連線到$smtphost失敗!";

#純粹的ssl加密方式,通訊過程加密,郵件資料安全

use net::smtp::ssl;

my $smtp = net::smtp::ssl->new(

"$smtphost:$sslport",

hello 

=> $helo[1],

timeout => 30

) or die "error:通過ssl連線到$smtphost失敗!";

$smtp->auth($username,$passowrd) or die("error:認證失敗!");

=cut

#傳送郵件

$smtp->mail($from);

$smtp->to($to);

$smtp->data();

$smtp->datasend($header);

$smtp->datasend($message);

$smtp->dataend();

$smtp->quit();

print "ok";

exit 0;

use encode qw(from_to encode);

from_to($subject,'shiftjis','iso-2022-jp');

encode('mime-header-iso_2022_jp',$subject);

from_to($message,'shiftjis','iso-2022-jp');

perl傳送郵件

在外地出差也搞什麼郵件簽到,真無聊 前一段看歐錦賽,時差還沒調整過來,早上起不來zzzzz 不過上有政策,下有對策嘛 就在伺服器上寫了乙個perl指令碼,用net smtp發郵件,用crontab來定時跑,一下就解決了,哈哈 perl指令碼 usr bin perl use net smtp use...

perl傳送郵件指令碼

usr bin perl usenet smtp usemime base64 自動簽到指令碼 host 10.182.131.153 smtp伺服器位址 host smtp伺服器 auth 郵件賬戶 password 郵件賬戶密碼 to 要傳送的目標 mail body 郵件內容 subsend ...

用Perl傳送郵件小例子

據傳,perl傳送郵件有很多方案,但我只會用mail sender這種方式,也就只能簡單談談這種方式。在參考眾多網頁後,程式書寫如下 usr bin perl w use mail sender my sender mail sender new or die can t send mail.n m...