アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。

sendmailを使って、メールの自動送信を行っています。

その際に、送れなかったsendmailのエラーは
どのようにすれば取得できるのでしょうか?

------

ちなみに、レンタルサーバーで、pos.toネット というところを使用しています。
(www.pos.to)

perl はバージョン 5.005_03 のようです。
sendmailは、sendmailと互換のMTAである qmail というものだそうです。



補足もいたしますので、よろしくお願いします。

参考サイトの紹介も大歓迎いたします。



_

A 回答 (4件)

レンタルサーバでのメールの場合はログを見れない可能性もありますね。



pos.toネットのFAQにはなにもそういった記述はありませんでしたが一度直接問い合わせてみるしかないかと思います。
    • good
    • 0

失礼。

typo でした。

system("/usr/sbin/sendmail -t < $tmpfile") == 0 || die "sendmail failed. REASON=$?";
    • good
    • 0

> その際に、送れなかったsendmailのエラーは


> どのようにすれば取得できるのでしょうか?

ログレベルでなくてもいいって事なら、sendmail コマンドの -f スイッチを使用してください。
例えば your_addr@example.domain というメールアドレスにエラーステータスメッセージを返したければ、

open(MAIL, '| /usr/sbin/sendmail -t -fyour_addr@example.domain');

のようにすれば、envelope-from に、特定のアドレスをセットすることが可能です。

もし、sendmail コマンド発行時にコケた (何らかの要因でコマンド実行が失敗した) ものを捕まえたければ、perl 5.6.x だったら、パイプ出力 open のステータスで undef を返し $! にエラーがセットされるんですが、perl 5.005_03 の場合は undef を返さないので、この方法が使えません。

`` 演算子や system 関数を使用してコマンドを発行し、$? を見れば、即時に判定する事も可能です。
ただし、system 関数で sendmail を使用する場合は、メールの内容を RFC822 形式で、先にファイルに落としておく必要がありますが。。。

system("/usr/sbin/sendmail -t < $tmpfile) == 0 || die "sendmail failed. REASON=$?";
    • good
    • 0

/var/log/maillog


の中に「sendmail」というヘッダーで残っていると思うんですが。
これはsendmailでもqmailでも同じだと思います。

参考にするなら参考URLの所はどうですか?

http://www.y-min.or.jp/~nob/qmail/

参考URL:http://ccs.cla.kobe-u.ac.jp/Jouhou/96/miyake/sot …

この回答への補足

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

教えていただきたいのですが、まず、/var というディレクトリが見あたりません。

レンタルサーバーなので、もしかしたら、
「/var」というのは、わたしがアクセスできないところにあるのかも知れません。

例えば、CGIでそこのファイル(/var/log/maillog)
を開いてブラウザに表示させるなどすることはできるのでしょうか?

例えば、

$mailfile='/var/log/maillog';
open(test,"$mailfile");
@testdbs=<test>;
print @testdbs;

として実行してみたのですが、何も表示されませんでした。

他にも思い当たるパスは書いてみて試したのですが、どうもうまくいきません。

ちなみに、sendmailのパスは、

$sendmail = '/usr/sbin/sendmail';

と記述しています。


なにかおわかりになりましたら、よろしくお願いします。

補足日時:2002/10/02 23:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!