質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

2回答

7416閲覧

メール送信エラーの確認方法

KazutoshiOhashi

総合スコア125

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

1クリップ

投稿2015/06/23 00:47

今、PHPでメールを送信するときmail関数を使っています。
でも、mail関数の返り値は、相手に送信できたかはわからないようです。

相手に送信出来たかどうかわかる方法、もしくは、送信する前にエラーが無く送信できることを確認する方法は、どのようにしたら、良いのでしょうか?

ソースコードで説明して頂けると助かります。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

こちらから相手に送信したかどうかは返値でわかりますよ。
相手に着信したかどうかを知りたいという事であれば、一般的には不可能です。
不着の場合、エラーメールが返るケースもあり、そのケースではエラーメールの有無とその内容を確認することで不着がわかります。不着でもエラーメールが返らないケースもありますので、一般的には着信を知ることは出来ません。

投稿2015/06/23 04:45

otn

総合スコア84498

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KazutoshiOhashi

2015/06/23 12:58

ご返答ありがとうございます。 否定されるお答えですが、出来ないと言ってしまえば、それから先は考えなくなりますよね。出来なければ、何か、別の方法があるのではないかと研究する。そして、スキルアップすることをしなくなってしまうのではないでしょうか? 否定しないで、お互い様、探究心をもって技術向上をしていきませんか? さて、PHPがオリジナルて持っているmail関数やmb_send_mail関数は、otn様のおっしゃるように、相手の着信を知ることは出来ません。 でも、これらの関数でメール送信しようが、どのようなメーラーからメール送信しようがsmtpでメールは相手に送信されています。 telnetを使ってメール送信をするとき、直接相手メールサーバーにコネクトして、smtpの手順通りコマンドやテキストを送信していけば、メールが送ることができます。 このsmtpプロトコルは、昔から変わっていませんので、もう、どなたか、PHPでプログラムを作成されているのと思って、お聞きしました。
rifuch

2015/06/23 13:27

メール送信の仕組みをご理解されているでしょうか? SMTP接続して送信完了までは送信側で把握できるでしょうが、 SMTPサーバーから先の部分に関しては、リアルタイムでの把握はできないのが仕様です。 (そもそもSMTP,POP等メール送信の仕様は非常古く、そのプロトコルに従っている以上限界があるのです)
otn

2015/06/23 14:12

OB25Bの影響を受けないサーバーからであれば、DNSでMXレコードを調べて、そのサーバーにSMTP接続してメールを送信することは可能です。それを以て「相手への着信」と定義するなら可能です。が、それでは相手に実際に着信しているとは限らないですよ。 ・そのサーバーもしくはその先のサーバーで何らかの原因で滞留する ・相手のユーザーアカウントが存在するとは限らない ・spam判定されて捨てられる など。
guest

0

phpでsmtpメール送信
http://qiita.com/tsunet111/items/0ba0e8fc61882c3905c0

smtpメール送信で戻り値を取得
http://hal456.net/qdmail/return

投稿2015/06/23 02:31

chiku_

総合スコア1464

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KazutoshiOhashi

2015/06/23 12:56

ご返答ありがとうございます。 否定されるお答えですが、出来ないと言ってしまえば、それから先は考えなくなりますよね。出来なければ、何か、別の方法があるのではないかと研究する。そして、スキルアップすることをしなくなってしまうのではないでしょうか? 否定しないで、お互い様、探究心をもって技術向上をしていきませんか? さて、PHPがオリジナルて持っているmail関数やmb_send_mail関数は、otn様のおっしゃるように、相手の着信を知ることは出来ません。 でも、これらの関数でメール送信しようが、どのようなメーラーからメール送信しようがsmtpでメールは相手に送信されています。 telnetを使ってメール送信をするとき、直接相手メールサーバーにコネクトして、smtpの手順通りコマンドやテキストを送信していけば、メールが送ることができます。 このsmtpプロトコルは、昔から変わっていませんので、もう、どなたか、PHPでプログラムを作成されているのと思って、お聞きしました。
KazutoshiOhashi

2015/06/23 13:10

コメントを削除できないのですね。 コメント先を間違えてしましました。すみません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問