smtpの使用について

225 views
Skip to first unread message

hisui hamasaki

unread,
Dec 12, 2011, 5:02:47 AM12/12/11
to HYEC.ORG Users
こちらのサーバを利用させていただいている濱崎と申します。

今、smtpを利用したメールの分割送信(自分宛でスパムではありません)を行うスクリプトを作成しているのですが、
Net::SMTPの使用がうまく行かず困っています。
使用規約では、Perlのモジュールの使用は使用申請入らないように読み取れたのですが、実際は必要だったのでしょうか。

現在、ごく一般的なsmtpへの受け渡し用の以下のスクリプトですが

use Net::SMTP;
my $smtp = Net::SMTP->new($host);

こちらのサーバは、smtp-auth仕様なので、その次の$smtp->auth(<ユーザ名>, <パスワード>);で、つまずいているのかと思っ
たのですが、

my $smtp = Net::SMTP->new($host, Debug=>1);
にて、デバッグをしてみると、接続拒否が戻ってきます。

Authen::SASLも設定して試したのですが、そもそものサーバへの接続が拒否されている状況のようです。

他のサーバでは、このスクリプトで無事送信ができていたので、原因がつかめません。
まだまだ未熟ゆえ、お解りになる方のお力をお借りいたしたく思います。

よろしくお願い致します。
濱崎翡翠

Yuta Hayakawa

unread,
Dec 12, 2011, 5:12:36 AM12/12/11
to hyec-...@googlegroups.com
HYEC.ORGの早川です。

Perlに詳しくないのとしっかり試せていないので、
参考になるかは分かりませんが……。

> my $smtp = Net::SMTP->new($host, Debug=>1);
> にて、デバッグをしてみると、接続拒否が戻ってきます。

「$host」には何をセットしてますでしょうか?
手元で「localhost」と指定して試してみましたが、
コネクションが出来ているようです。
(そういう問題じゃない……ということかもしれませんが……)

Net::SMTP>>> Net::SMTP(2.29)
Net::SMTP>>> Net::Cmd(2.26)
Net::SMTP>>> Exporter(5.58)
Net::SMTP>>> IO::Socket::INET(1.29)
Net::SMTP>>> IO::Socket(1.29)
Net::SMTP>>> IO::Handle(1.25)
Net::SMTP=GLOB(0xca7c9e0)<<< 220 cosmos.hyec.org ESMTP Postfix
Net::SMTP=GLOB(0xca7c9e0)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0xca7c9e0)<<< 250-cosmos.hyec.org
Net::SMTP=GLOB(0xca7c9e0)<<< 250-PIPELINING
Net::SMTP=GLOB(0xca7c9e0)<<< 250-SIZE 10240000
Net::SMTP=GLOB(0xca7c9e0)<<< 250-ETRN
Net::SMTP=GLOB(0xca7c9e0)<<< 250-STARTTLS
Net::SMTP=GLOB(0xca7c9e0)<<< 250-AUTH PLAIN LOGIN
Net::SMTP=GLOB(0xca7c9e0)<<< 250-AUTH=PLAIN LOGIN
Net::SMTP=GLOB(0xca7c9e0)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP=GLOB(0xca7c9e0)<<< 250-8BITMIME
Net::SMTP=GLOB(0xca7c9e0)<<< 250 DSN

具体的に動かなかったときの最小コードと
出力されたエラーメッセージをポストしていただければ
もっと具体的なことが言えるかもしれません。
(あるいは他のPerl使いの人が教えてくれるかも……)

とりいそぎ。

--
Yuta Hayakawa
(HYEC.ORG)

hisui hamasaki

unread,
Dec 14, 2011, 8:23:29 AM12/14/11
to HYEC.ORG Users
HYEC.ORGの早川さま
濱崎です

お答えいただいた「localhost」にて、無事接続が出来ました。
ありがとうございました。

なぜか、頑なにsmtpサーバを指定しなければならないと思い込み
$server_smtp = "mail.hyec.org";
$server_smtp_port = "587";
のような、設定をしておりました。

よく考えれば、同一サーバ内での処理なので「localhost」でよかったのですね。
ちなみに、こちらのsmtpサーバは「localhost」ではなく、サーバを上記のようなアドレス指定すると、送信できないのでしょうか。

念のために。今回のスクリプトを下記に記します。
$smtp = Net::SMTP->new($server_smtp, $server_smtp_port, Timeout =>
$timeout, Debug => int($debug / 2)) || &VERBOSE('error', 'error',
'ERROR: Net::SMTP new / server = ' . $server_smtp);
$smtp->mail($envelope_from) || &VERBOSE('error', 'error', 'ERROR:
Net::SMTP mail = ' . $envelope_from); $smtp->auth($user, $passwd)or
die("aurh failed\n");

最後になりましたが、
あらためまして、ありがとうございました。

Yuta Hayakawa

unread,
Dec 14, 2011, 8:36:44 AM12/14/11
to hyec-...@googlegroups.com
HYEC.ORGの早川です。

> ちなみに、こちらのsmtpサーバは「localhost」ではなく、
> サーバを上記のようなアドレス指定すると、送信できないのでしょうか。

ちょっと内部向けDNSの都合といいますか、
このサーバが使用しているDNSの都合といいますか、
外部から接続可能なサーバ名での接続は今のところ出来ません。

特別な理由があり、「localhost」だと支障がある……
というご意見がユーザの皆様からあれば考えますが、
現状はそのように指定可能なよう構成する予定はありません。

Reply all
Reply to author
Forward
0 new messages