- ベストアンサー
PHPでメール送信する際、SMTPを利用するメリットについて教えてください
- PHPでメール送信する際、SMTPを利用するメリットについて教えてください。ログイン認証でメールを送信したいのですが、SMTPを利用した方がよいか、判断がつきません。
- SMTPを利用するメリットとデメリットを教えてください。例えば、http://www.sapphirus.biz/php/sformmail2/ http://www.sapphirus.biz/php/sformmail2s/ では、SMTPの方は「認証」が必要なので、それだけ大変そうなのですが。
- SMTPを利用しない場合は、何方式と呼ぶのでしょうか? WEBメール方式?環境はレンタルサーバで、現状はSMTPを利用せずにメールが送れるが、どういう仕組みで届くか理解できていないです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
前に回答した者です。 > そうすると、PHPというかメールの仕組み自体の話で恐縮なのですが、 「何も認証しないで送る方法」というのは、 いきなり、SMTPでメールを送りつけて、 そのメールアドレスからメールサーバ(?)を割り出して、 もし、アドレスが違っても、エラーは返ってこない、 みたいな流れになるのでしょうか? ほぼほぼその通りです。 認証なしに、@以降のドメインに向けてメールを送りつけます。 ちなみに認証する方法をとっても、自分が発出するメールサーバーに対しての認証です。 エラーがあった場合は、発出したメールサーバーに対してエラーが返ってくるといった感じです。 でも発出するメールサーバーも本来のメールサーバーアドレスでない定義ができるはずなので、その場合はネットの藻屑となります。(戻り先がないので)
その他の回答 (2)
- shimix
- ベストアンサー率54% (865/1590)
mailを使った場合には、一般的なレンタルサーバであればsendmailコマンドでの送信が実行されます。一方、SMTP認証を使うケースでは他のSMTPサーバへも接続可能です。お使いのプロバイダのSMTPサーバが(そのプロバイダの)ネットワーク外からの接続を許可していれば、そちらのサーバから送信することが出来ます。 共有のレンタルサーバの場合、サーバーのIPアドレスがspamデータベースに登録されてしまっていることがあり(昨日までOKでも、いつ登録されてしまうかわからない)不達を避けるために自分が契約しているプロバイダのSMTPサーバを使うことがあります。 phpだとSMTPを使うライブラリも多いので、そういうライブラリを使えば如何でしょうか? ・http://www.google.co.jp/search?q=php%20SMTP&hl=ja
補足
回答ありがとうございます。 >一般的なレンタルサーバであればsendmailコマンドでの送信が実行されます。 これは、自分が借りているレンタルサーバのメールサーバを利用して、メール送信する、という意味でしょうか? >一方、SMTP認証を使うケースでは他のSMTPサーバへも接続可能です。お使いのプロバイダのSMTPサーバが(そのプロバイダの)ネットワーク外からの接続を許可していれば、そちらのサーバから送信することが出来ます。 これは、メール発信先が、メールアドレスから割り出したメールサーバになる、という意味なのでしょうか? ここで言う「他のSMTPサーバ」とは、何を指しているのでしょうか?
- shigenobi
- ベストアンサー率43% (19/44)
こんばんは 何か少し勘違いをされているようです。 メールを送信する時に使うプロトコルはすべて、 SMTP(Simple Mail Transfer Protocol)を利用しますので、 SMTPを利用しないメール送信方法はありません。 上記にあげている2つの方法の違いですが、 送る前に正しいアカウントからの接続かどうかを確認する方法と、 その確認をしないで送る方法かどうかです。 SMTP版を利用するメリットとしては、正規のアカウントからの送信要求で ない場合、送信できなくできる(認証ではじく)というものです。 デメリットはそれを防げない、ということとなります。 SMTP版の方の通称は、認証方式の1つで「SMTP認証」といいますが、 (http://e-words.jp/w/SMTP20Authentication.html) 何も認証しないで送る方法は、特に送信方法として名前があるようには 認識していません。
補足
回答ありがとうございます。 >SMTPを利用しないメール送信方法はありません そうすると、PHPというかメールの仕組み自体の話で恐縮なのですが、 「何も認証しないで送る方法」というのは、 いきなり、SMTPでメールを送りつけて、 そのメールアドレスからメールサーバ(?)を割り出して、 もし、アドレスが違っても、エラーは返ってこない、 みたいな流れになるのでしょうか?
お礼
回答ありがとうございました。 大変参考になりましたー