こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPでメール送信する際、SMTPを利用するメリッ

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

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

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

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

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

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

投稿日時 - 2011-10-13 18:16:20

QNo.7069379

暇なときに回答ください

質問者が選んだベストアンサー

前に回答した者です。

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


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

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

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

投稿日時 - 2011-10-15 12:58:52

お礼

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

大変参考になりましたー

投稿日時 - 2011-10-27 13:13:43

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

mailを使った場合には、一般的なレンタルサーバであればsendmailコマンドでの送信が実行されます。一方、SMTP認証を使うケースでは他のSMTPサーバへも接続可能です。お使いのプロバイダのSMTPサーバが(そのプロバイダの)ネットワーク外からの接続を許可していれば、そちらのサーバから送信することが出来ます。

共有のレンタルサーバの場合、サーバーのIPアドレスがspamデータベースに登録されてしまっていることがあり(昨日までOKでも、いつ登録されてしまうかわからない)不達を避けるために自分が契約しているプロバイダのSMTPサーバを使うことがあります。

phpだとSMTPを使うライブラリも多いので、そういうライブラリを使えば如何でしょうか?

http://www.google.co.jp/search?q=php%20SMTP&hl=ja

投稿日時 - 2011-10-14 09:47:17

補足

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

>一般的なレンタルサーバであればsendmailコマンドでの送信が実行されます。
これは、自分が借りているレンタルサーバのメールサーバを利用して、メール送信する、という意味でしょうか?

>一方、SMTP認証を使うケースでは他のSMTPサーバへも接続可能です。お使いのプロバイダのSMTPサーバが(そのプロバイダの)ネットワーク外からの接続を許可していれば、そちらのサーバから送信することが出来ます。
これは、メール発信先が、メールアドレスから割り出したメールサーバになる、という意味なのでしょうか? ここで言う「他のSMTPサーバ」とは、何を指しているのでしょうか?

投稿日時 - 2011-10-14 10:30:50

ANo.1

こんばんは


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

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

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

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


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

投稿日時 - 2011-10-13 18:54:43

補足

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

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

投稿日時 - 2011-10-14 10:22:55

あなたにオススメの質問