どのようにNetを使いますか?SMTPメールを送ります。
3326 ワード
http://fayland.org/journal/NetSMTP.html
Category:Modules Keywors:Net:SMTP mail
コードは163.comのSMTPでメールを送ります。なぜ$stmp->auth('user'、'pass')が必要ですか?ほとんどのSMTPサーバは、spam/迷惑メールを防止するために、ユーザがアイデンティティを検証する必要がある。この方法は別途モジュールをインストールする必要があります。Authen:SASLはこのモジュールはシステムが持っていないかもしれません。システムが仮想ホストである場合、このモジュールはインストールできません。詳細なコードは、スクリプトLeoBBSまたは書籍「Perlネットワークプログラミング」を参照することができる。 Debug=>1このコードはテスト用に使われていますので、Debugを開いています。普通のテストは一回で終わります。正式に使うと閉じます。 注意したいのは、送信者と受信者の住所はシングルで引用しますか?それとも「fayland\@gmail.com」を使います。変数の場合は、正の値で変換します。 添付ファイルを送りたいですが、どうすればいいですか?「Perlネットワークプログラミング」を参照してください。 メール送信プロセスの簡単な紹介SMTPプロトコルは、文書rfc 821によって定義される。
rfc 821プロトコルでは、送信者(Sで表されるメールを送信するプログラム)と受信者(Rで表されるSMTPサーバ)の2つの役割が定義されている。 SとRがシーケンシャル接続を通じて接続された後、SはまずRにアイデンティティを示すべきであり、このプロセスはheloコマンドで完成され、helo後に送信者のドメイン名(利用可能なlocal host)を接続する。Rの答えは接続に成功した状態コードやサーバのアイデンティティなどを表しています。例えば、 はヘッダファイルを送信する。 は本文を送信する。データで開始します。二つの改行で終了します。 は接続を終了する。 以上は簡単な接続過程です。Netを開くとき:SMTPのdebugは、この接続手順と似たものを出力します。
Category:Modules Keywors:Net:SMTP mail
コードは163.comのSMTPでメールを送ります。
#!/usr/bin/perl
use Net::SMTP;
my $mailhost = "smtp.163.com"; # the smtp host
my $mailfrom = '[email protected]'; # your email address
my @mailto = ('[email protected]', '[email protected]'); # the recipient list
my $subject = " ";
my $text = "
。";
$smtp = Net::SMTP->new($mailhost, Hello => 'localhost', Timeout => 120, Debug => 1);
# anth login, type your user name and password here
$smtp->auth('user','pass');
foreach my $mailto (@mailto) {
# Send the From and Recipient for the mail servers that require it
$smtp->mail($mailfrom);
$smtp->to($mailto);
# Start the mail
$smtp->data();
# Send the header
$smtp->datasend("To: $mailto
");
$smtp->datasend("From: $mailfrom
");
$smtp->datasend("Subject: $subject
");
$smtp->datasend("
");
# Send the message
$smtp->datasend("$text
");
# Send the termination string
$smtp->dataend();
}
$smtp->quit;
Trouble Shoting/Code Analysis$mailto =~ s/\@/\\\@/;
rfc 821プロトコルでは、送信者(Sで表されるメールを送信するプログラム)と受信者(Rで表されるSMTPサーバ)の2つの役割が定義されている。
S: helo 1313s.com
R: 220 server.com Simple Mail Transfer Service Ready
は、rfc 821によって定義された状態コードの中で、通常は2または3で開始される表現に成功し、4または5で開始される表現で送信プロセスに問題が発生する。サーバの認証が必要な場合はAUTH LOGINも送信します。S: MAIL FROM:
R: 250 OK
S: RCPT TO:
R:
ここのrecipientのアドレスはSMTP同一サーバ上でサーバがこのアドレスを見つけられない場合、「550 No such user here」と答えます。S: DATA
R: 354 Start mail input; end with ( )
S: To: [email protected]
S: From: [email protected]
S: subject: title
S: ...
S: text
S: etc.
S:
S:
R: 250 OK
S: QUIT
R: 221 server.com Service closing transmission channel