- PR -

linuxでのmailコマンド

1
投稿者投稿内容
wataru
会議室デビュー日: 2005/02/09
投稿数: 11
投稿日時: 2005-02-09 20:48

コマンドラインから
mailコマンドでメールを送信すると
すぐにプロンプトに復帰し、成功したのか失敗したのかわかりません。

> cat mailorg.txt | nkf -s > mailnkf.txt #SJISで変換
> cat mailnkf.txt | mail -s TEST15 abc@de.fghijk.com #メール送信
上記の様に試しました。

正常時は、実際にメーラ(Outlook Express)で受信できました。
しかし、異常時(メーラで受信できなかった場合)は、異常をLinux側で
検地する方法はありますでしょうか?

メールサーバはmailコマンドを実施するマシンとは別にあり、
メールソフトはsendmailかpostfixを想定しております。


エラー発生箇所は以下があると思いますが、
mailコマンドでどこまで検出できますでしょうか?
またmailコマンドでは不可の場合、どんな方法がありますでしょうか?

想定されるエラー
(1)SMTPサーバへの転送時
  サーバと回線が切れている場合
  サーバが立ち上がっていない場合
  サーバのメールソフト(sendmail等)が起動していない場合
  POP before SMTP制限のあるサーバで受信作業を行わなかった場合
(2)送るべきSMTPサーバの割り出時
  DNSサーバがダウン
  DNSの照合に失敗
(3)相手先のSMTPサーバが判明し、交信を行う際
  不正中継拒否で、送ろうとしているメールがスパムメールと判定さ
  れて接続を断られる場合
(4)相手のSMTPサーバが管理するアドレスに送りたい名前が存在しない場合
  メールアドレスの「@」より前の部分に書き間違え
(5)相手のPOP3サーバへ転送時
  メールボックスがいっぱい
  メールアカウントの有効期限切れ
(6)アカウントが問題なく有効だったとしても、フィルタ設定等で受け取りを拒否


kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-02-09 21:15
こんばんわ.
引用:

wataruさんの書き込み (2005-02-09 20:48) より:

コマンドラインから
mailコマンドでメールを送信すると
すぐにプロンプトに復帰し、成功したのか失敗したのかわかりません。


設定にもよりますが,
local の MTA を使っているなら maillog を参照すれば良いのでは?
remote ならその server の maillog を参照しましょう.
mail そのものは log は吐けないのではないかと.
wataru
会議室デビュー日: 2005/02/09
投稿数: 11
投稿日時: 2005-02-10 17:57
早速の回答ありがとう御座います。

>local の MTA を使っているなら maillog を参照すれば良いのでは?
>remote ならその server の maillog を参照しましょう.
ローカルマシンでps打つと[sendmail]、ローカルの/var/log/maillog
にログがはかれる、のでlocalだと思うのですが・・メールサーバ(別
マシン)でもsendmailが動いております。


実装は、
マシンA:(WinXP)
マシンB:(Linux)
マシンC:(メールサーバ)
マシンD:(Linux or WinXP or 携帯電話 のメーラ)

の状態で
AからBへCORBAで情報を転送。
Bは受け取った情報を(マシンC経由で)マシンDへメール送信。
Bは正常に送信できたか、送信できなかったかをAへCORBAで返信。

としたいです。
(6)までは、受信者が送達確認のメールを返信しないと無理
だと思うので、

mailコマンド、(の復帰値??(あるんでしょうか?))、
MTAからのエラーメール、maillogなどで、どのへんのエラーまで
拾えるでしょうか((1)(2)くらいでしょうか??)

(Solarisの)mailコマンドのマニュアルには、配送通知の
デフォルトは /nodelivery/return なので、

nodelivery:配送が成功したことを送信者に通知しません
return:メール配送が失敗したか否かを送信者に通知します。
    送信者に失敗メッセージを返します

Linuxではこのようなオプションを見つけれませんでした。
あるとしたら、

(一)「成功も失敗も送信者に通知」に設定。
(二)メール送信後、mailコマンドでメールを受信。
(三)結果を取得

で、いけますでしょうか?

また、メールサーバがsendmail ではなく postfix
の場合、挙動は変わりますか?

ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-02-10 21:36
・mailコマンドはキューを生成するものです。届くかどうかは
 知りようがありません。

・メールが宛先に届くかどうか、SMTPサーバが確実に判定する方法は
 ありません。
# もし、確実に判定できるようにSMTPプロトコルが設計されていたなら、
# それはまるで融通が効かなくて使いづらいものになっていたでしょう。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-02-10 22:23
こんばんわ.
引用:

wataruさんの書き込み (2005-02-10 17:57) より:

また、メールサーバがsendmail ではなく postfix
の場合、挙動は変わりますか?


postfix でも sendmail でも,あるいは qmail でも大差は無いと思います.
MTA としての機能ですから.

でも,「情報が到達したか否か?」という要件を求めるののは,
SMTP では困難ではないかと...
1

スキルアップ/キャリアアップ(JOB@IT)