< CGI::Sessionの、期限切れのセッションをお掃除する | タスクトレイにアイコンを表示するユーザーコントロール >

February 2, 2004

sendmailの送信エラーを捕捉する(実験編)

CGIからsendmailでメール送信するときに、送信に成功したかエラーになったかを取得する方法を調べてみたのでとりあえず実験編です。

まず、送信エラー時にエラーメールを返す、ってやつ。通常メールクライアントからSMTPに投げると返ってくるけど、同じことをさせるには、sendmailの-fオプションで返信先を指定します。sendmailについてはsendmailのman page[www.linux.or.jp]が参考になります。ためしにてきとうなアドレスに送ってみたら、ちゃんと返ってきました 笑。

も一個、sendmailは実行時にステータスを返してくるのを取得してみよう、ってやつ。特殊変数$?にステータスコードが入ってくる・・・はずだけど、そのような条件を作れませんでした。なので、定数を宣言したのみ。まあ、画面出力してみてます。

#!/usr/bin/perl

*EX_OK            = \0 ;      #/* successful termination */

*EX__BASE         = \64;      #/* base value for error messages */

*EX_USAGE         = \64;      #/* command line usage error */
*EX_DATAERR       = \65;      #/* data format error */
*EX_NOINPUT       = \66;      #/* cannot open input */
*EX_NOUSER        = \67;      #/* addressee unknown */
*EX_NOHOST        = \68;      #/* host name unknown */
*EX_UNAVAILABLE   = \69;      #/* service unavailable */
*EX_SOFTWARE      = \70;      #/* internal software error */
*EX_OSERR         = \71;      #/* system error (e.g., can't fork) */
*EX_OSFILE        = \72;      #/* critical OS file missing */
*EX_CANTCREAT     = \73;      #/* can't create (user) output file */
*EX_IOERR         = \74;      #/* input/output error */
*EX_TEMPFAIL      = \75;      #/* temp failure; user is invited to retry */
*EX_PROTOCOL      = \76;      #/* remote error in protocol */
*EX_NOPERM        = \77;      #/* permission denied */
*EX_CONFIG        = \78;      #/* configuration error */

*EX__MAX          = \78;       #/* maximum listed value */


*CNST_SENDMAIL		= \'/usr/sbin/sendmail';
*CNST_RETURN_PATH	= \'ba@zen.or.jp';

print "Content-Type: text/plain\n\n";
eval {
	open MAIL, "| $CNST_SENDMAIL -t -f $CNST_RETURN_PATH" or die $!;
	
	my $mail = <<END_MAIL;
From: $CNST_RETURN_PATH
To: foo\@bar.baz
Subject: test mail

This is test
This is test
.
END_MAIL
	print MAIL $mail;
	close MAIL;

	print "$?";
};
print "$@" if ( $@ );

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/159

コメント

www

test

www

・・・なんでここにテスト?(^-^;)

したいことが載っていたのでとても参考になりました。
同じレンタルサーバー業者使っているようなので
これまた心強いです。
サイトデザインも素敵ですね。

みかさん、はじめまして。
ロリポお使いなのですかね。
よろしければURL教えてください。

サイトデザインは気が向いたらちょっとずついじったりして
なかなか完成にはならないですね。
また遊びに来てくださいね。

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?