• 締切
  • すぐに回答を!

NET::SMTPについて

  • 質問No.275356
  • 閲覧数395
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 66% (6/9)

おねがいします。
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;

回答 (全1件)

  • 回答No.1

ベストアンサー率 40% (85/208)

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

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

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

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

お礼率 66% (6/9)

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

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

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

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

サーバ側で、NET::SMTPのようなプログラムからのメール送信要求を無視する設定などがされていることもありうるのでしょうか?
投稿日時:2002/05/22 08:53
お礼コメント
yasu_japan

お礼率 66% (6/9)

解決しました。
送信先を送信元と同じドメインに指定することで
うまくいきました。
その他のアドレスを送信先に指定すると、
relay禁止ではじかれました。
投稿日時:2002/05/24 06:33
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

ピックアップ

ページ先頭へ