dポイントプレゼントキャンペーン実施中!

以下のコードでメールを送信したいのですが、デバッグのために書いたConnect failed over tls at /var/www/cgi-bin/net_smtp.cgi line 13.エラーが消えません。
ポートの部分を取り払うとコンパイルは出きるのですが、送信してくれません。何か間違っているところがあるのでしょうか? 


#!/usr/bin/perl -w
use POSIX;
use Net::SMTP;
use MIME::Entity;

my $un = "****";
my $pw = "****";
my $SMTP_Port = '587';



#オブジェクトの作成
$smtp = Net::SMTP->new(
Port=> $SMTP_Port,
'********', #SMTPサーバ
Hello=>'********')|| die "Connect failed over tls"; #SMTPサーバのドメインを指定

$smtp->auth(<*$un*>, <*$pw*>);


#ヘッダ部の組み立て
$smtp->mail('*******@********');#送信元の指定
$smtp->to('*******@**********'); #宛先の指定


#データ部の組み立て(MIME::Entityによるデータの作成)
$smtp->data();

#$oMime =
MIME::Entity->build(

From => 'test', #送信元(データ部)
To => 'test', #宛先(データ部)
Subject => "easy mail sending", #件名
Data => ["simple mail2¥n",
"MailTest¥nhello world¥n"]);

$smtp->dataend();
#SMTP接続の終了
$smtp->quit;

A 回答 (1件)

まずは、使っているメールサーバのポート番号が 587 なのか 25 なのかをもう一度確認されては?


それから、どんな認証処理が必要かどうかも確認された方が良いかと。(SASL, POP before SMTPなど)

また、Net::SMTP ではデバッグオプションが有るので、それを有効にして実行すると何か分かるかも知れません。
http://perldoc.jp/docs/modules/libnet-1.12/Net/S …

例) -----------------------------------------
#オブジェクトの作成
$smtp = Net::SMTP->new(
Port=> $SMTP_Port,
'********', #SMTPサーバ
Hello=>'********',
Debug => 1)|| die "Connect failed over tls"; #SMTPサーバのドメインを指定
---------------------------------------------
    • good
    • 0
この回答へのお礼

ありがとうございます。早速試してみます。

お礼日時:2011/03/06 23:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!