みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

NET::SMTPについて

おねがいします。
NT環境からperlでメール送信したいと思っています。
NET::SMTPをPPMでダウンロードしました。
以下のサンプルプログラムを得て、SMTPサーバ名など
を入れました。でも、エラーにはなりませんが送信されず。
そもそも、IDとpassの認証部分がないですよね。
このサンプルだと「SMTPサーバ名さえわかれば誰でも
そのSMTPサーバからメールできちゃう」ってことに
なりませんか??
他の方の質問にあった、
$smtp->auth( USERNAME, PASSWORD );
も試しましたが、エラーになりました。
認証うける方法があるのでしょうか?

よろしくおねがいします。

#!/usr/local/bin/perl -w

use Net::SMTP;

$smtp = Net::SMTP->new('mailhost');

$smtp->mail($ENV{USER});
$smtp->to('postmaster');

$smtp->data();
$smtp->datasend("To: postmaster\n");
$smtp->datasend("\n");
$smtp->datasend("A simple test message\n");
$smtp->dataend();

$smtp->quit;

投稿日時 - 2002-05-21 17:08:17

QNo.275356

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

あなたが指定したメールサーバは認証が必要なサーバなのでしょうか?
認証が無い場合は auth は必要ではありません。

> $smtp->mail($ENV{USER});

$ENV{USER} には正しいメールアドレスが設定されているのでしょうか?
ここにあなたのメールアドレスを設定しても送信できませんか?
多分ここでエラーになっているんじゃないかと思います。
$smtp->mail('あなたのメールアドレス');
としてテストしてみてください。

> 「SMTPサーバ名さえわかれば誰でもそのSMTPサーバからメールできちゃう」ってことになりませんか??
SPAM 対策をしていなければそういうことが出来ちゃいます。
POP before SMTP とか SMTP auth とか relay を禁止とか設定されていると思いますので
そのようなことは出来ないようになっていると思います。

投稿日時 - 2002-05-21 20:57:39

補足

ご回答ありがとうございます。

>$smtp->mail('あなたのメールアドレス');
>としてテストしてみてください
→自分のメールアドレスを指定しています。
このアドレスがサーバに存在するか?をチェックしてるのでしょうか?

>あなたが指定したメールサーバは認証が必要なサーバなのでしょうか?
SMTPサーバは、認証はないと思います。POP3は必要。
でも、送信したいだけです。

>POP before SMTP とか SMTP auth とか relay を禁止とか設定されていると思いますので
この設定がされていても、NET::SMTPは使えるんですよね?

サーバ側で、NET::SMTPのようなプログラムからのメール送信要求を無視する設定などがされていることもありうるのでしょうか?

投稿日時 - 2002-05-22 08:53:07

お礼

解決しました。
送信先を送信元と同じドメインに指定することで
うまくいきました。
その他のアドレスを送信先に指定すると、
relay禁止ではじかれました。

投稿日時 - 2002-05-24 06:33:01

あなたにオススメの質問