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

PHPでメール送信する際、SMTPを利用するメリットについて教えてください。

ログイン認証でメールを送信したいのですが、
SMTPを利用した方がよいか、判断がつきません。

例えば、
http://www.sapphirus.biz/php/sformmail2/
http://www.sapphirus.biz/php/sformmail2s/
では、SMTPの方は「認証」が必要なので、
それだけ大変そうなのですが、

SMTPを利用する、しない場合の、
「メリット」「デメリット」を教えてください。

また、SMTPを利用しないやり方(メールアドレスを書いてmail関数を利用)は、
何方式と呼ぶのでしょうか? WEBメール方式?

環境) レンタルサーバ
現状) SMTPを利用せずにメールは送れるのですが、
   どういう仕組みで届くか理解できてません

A 回答 (3件)

前に回答した者です。



> そうすると、PHPというかメールの仕組み自体の話で恐縮なのですが、
「何も認証しないで送る方法」というのは、
いきなり、SMTPでメールを送りつけて、
そのメールアドレスからメールサーバ(?)を割り出して、
もし、アドレスが違っても、エラーは返ってこない、
みたいな流れになるのでしょうか?


ほぼほぼその通りです。
認証なしに、@以降のドメインに向けてメールを送りつけます。
ちなみに認証する方法をとっても、自分が発出するメールサーバーに対しての認証です。

エラーがあった場合は、発出したメールサーバーに対してエラーが返ってくるといった感じです。

でも発出するメールサーバーも本来のメールサーバーアドレスでない定義ができるはずなので、その場合はネットの藻屑となります。(戻り先がないので)
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

大変参考になりましたー

お礼日時:2011/10/27 13:13

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サーバ」とは、何を指しているのでしょうか?

補足日時:2011/10/14 10:30
    • good
    • 0

こんばんは




何か少し勘違いをされているようです。

メールを送信する時に使うプロトコルはすべて、
SMTP(Simple Mail Transfer Protocol)を利用しますので、
SMTPを利用しないメール送信方法はありません。

上記にあげている2つの方法の違いですが、
送る前に正しいアカウントからの接続かどうかを確認する方法と、
その確認をしないで送る方法かどうかです。

SMTP版を利用するメリットとしては、正規のアカウントからの送信要求で
ない場合、送信できなくできる(認証ではじく)というものです。
デメリットはそれを防げない、ということとなります。


SMTP版の方の通称は、認証方式の1つで「SMTP認証」といいますが、
(http://e-words.jp/w/SMTP20Authentication.html)
何も認証しないで送る方法は、特に送信方法として名前があるようには
認識していません。

この回答への補足

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

>SMTPを利用しないメール送信方法はありません
そうすると、PHPというかメールの仕組み自体の話で恐縮なのですが、
「何も認証しないで送る方法」というのは、
いきなり、SMTPでメールを送りつけて、
そのメールアドレスからメールサーバ(?)を割り出して、
もし、アドレスが違っても、エラーは返ってこない、
みたいな流れになるのでしょうか?

補足日時:2011/10/14 10:22
    • good
    • 0

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