- 締切済み
perでメールが送信出来ない場合の確認方法
perlで下記のような感じでレンタルサーバーで動かしたところ送信が出来ませんでした。 その場合に、レンタルサーバーなのでsendmailのログも見れないで困っていますので、 原因の確認方法が解ればご教示頂ければ有難いです。 my ( $SENDMAIL ) = '/usr/sbin/sendmail'; open(MAIL, "| $SENDMAIL -t "); print MAIL "From: xxx@xxx.co.jp\n"; print MAIL "To: xxx@xxx.co.jp\n"; print MAIL "Subject: test\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n"; print MAIL "\n"; print MAIL "test_letter\n";
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- aki04
- ベストアンサー率0% (0/0)
私もPerl初心者なので見当違いだったらすみません。 eval { # 処理 }; if ($@) { # eval 内でエラーがあったら print $@; # 出力 } とかでエラーの内容が見れたりしないでしょうか。 そういうことじゃないのかな…
- t-okura
- ベストアンサー率75% (253/335)
> ただ… > 送れなかったので、たぶん、サーバーの問題の気がしてきました。 切り分けのため、メールを送るだけの CGI でテストしてみたらどうでしょうか。例えば、下記のようなものです。 #!/bin/sh echo "Content-type: text/plain\n\n" /usr/sbin/sendmail -v -t -ffoo@example.com <<__EOM__ From: foo@example.com To: foo@example.com Subject: Hello Hi. Hello World. __EOM__ exit foo@example.com は、まっとうなメールアドレスに変えてください。
- 藤田 朋郎(@hujitomo)
- ベストアンサー率54% (39/71)
確認の方法ではありませんが、もしもサンプルのようなソースであると仮定するなら送れないのは当然なのでは? >print MAIL "From: xxx@xxx.co.jp\n"; >print MAIL "To: xxx@xxx.co.jp\n"; この2行で使用している " が原因ではないでしょうか? >print MAIL 'From: xxx@xxx.co.jp\n'; >print MAIL 'To: xxx@xxx.co.jp\n'; このようにする、もしくはメールアドレスをスカラに格納する必要があると思います。
- t-okura
- ベストアンサー率75% (253/335)
まずは use strict; use warnings; をつけて、手元の環境でスクリプトの文法チェックを行うことをお勧めします。 また、 open(MAIL, "| $SENDMAIL -t "); を open(MAIL, ">", "debug.txt"); のように変えて、sendmail にどんな文字列が渡されているかを確認するのも役立つと思います。
お礼
有難うございます。 use strict; use warnings; を入れたところ print MAIL "From: xxx@xxx.co.jp\n"; の誤りは解りました。 ただ… 送れなかったので、たぶん、サーバーの問題の気がしてきました。