🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

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

Q&A

解決済

5回答

14020閲覧

【メール】【PHP】メールサーバーが無くてもメールを送信できるのでしょうか?

hasshy

総合スコア102

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

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

0グッド

1クリップ

投稿2019/12/16 07:00

最近、mail関数を使ったアプリケーションを触る機会がありました。
アプリケーションでは、メールサーバーの接続情報が見つかりませんでした。

そもそもなのですが、webサーバーから直接メールを送信する事はできるのでしょうか?
メール送信自体はよく実装するのですが、メールサーバーからメールを送信する処理しかした事がなかったためイメージができません。

所感ですが、これができてしまうと送信元を偽ってメールを送信できるのではないかと考えてしまいます。

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

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

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

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

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

guest

回答5

0

みなさんメールサーバもってないけどメール送信してますね。

所感ですが、これができてしまうと送信元を偽ってメールを送信できるのではないかと考えてしまいます。

まさにそのとおりですな。

投稿2019/12/16 07:02

y_waiwai

総合スコア88038

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

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

hasshy

2019/12/21 18:19

ご返答いただきありがとうございます。
guest

0

ベストアンサー

SMTPサーバーが自分の管理下にない場合でも、メール送信は可能です。

案1:契約しているプロバイダや、レンタルサーバー会社、GmailなどのSMTPサーバーを使う
多分これが普通。
迷惑メール送信に使われないように、(おそらくサブミッションポートで)自分のアカウントで認証が必要です。

案2:DNSを引いて、送信先のSMTPサーバーに直接送りつける
(foo@bar.example.com宛てであれば、DNSでbar.example.comのMXレコードを引いてそこに送る)
おそらく、迷惑メール扱いされる。
受け取ってくれるSMTPサーバーもあるでしょうけど。

webサーバーから直接メールを送信する事はできるのでしょうか?

が、案2のことであれば、インターネット上ではいろいろ乗り越えないと受け取ってもらえないと思います。
社内システムとかであれば問題ありません。

投稿2019/12/16 07:41

otn

総合スコア85882

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

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

hasshy

2019/12/21 18:16

ご返答いただきありがとうございます。 複数の可能性を教えていただきありがとうございます。 出会ったケースも、外部にメールサーバーがないだけで案1と同じ状態のようです。 案2のような力技があるのですね…。
guest

0

「メール送信サーバ」「メール中継サーバ」って言葉で調べると
仕組みへの理解が深まるかと。

また、「Outbound Port 25 Blocking(OP25B)」とか、
「サブミッション・ポート」なんて言葉も知っておくと良いかと。

投稿2019/12/16 07:15

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

hasshy

2019/12/21 18:18

教えていただきありがとうございます。 メールサーバーを構築する事がなかったため勉強不足でした。 ありがとうございます。
guest

0

これができてしまうと送信元を偽ってメールを送信できるのではないかと

mail()でもmb_send_mail()でもそうですが、引数の$additional_headersで任意の送信元(From:)が設定できるので、メールサーバー介していようがいまいが偽ることは可能です。

偽るつもりはなくても、「このメールアドレスは送信専用です。返信されても届きません。」のような但し書きがあるメールを受け取ることってあると思いますが、その手のものはこの$additional_headersに存在しないメールアドレスがFromに設定されている可能性があるかもしれません。
というか大抵はFromに任意のメールアドレスを指定すると思います。

投稿2019/12/16 20:32

m.ts10806

総合スコア80875

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

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

hasshy

2019/12/21 18:20

なるほどですね。 確かに、送信専用であれば必須ではないのかもしれません。
m.ts10806

2019/12/21 21:11

そういう意味ではないですよ。
guest

0

原則smtpサーバーがないとメールは送信されません。
linuxサーバーとかだと自分自身にsmtpサーバー機能が
当初から設定されていたりします
そもそもmail関数はphpの中でも群を抜いてだめな関数なので
それを利用前提としないほうがよいでしょう。

投稿2019/12/16 07:21

yambejp

総合スコア116661

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

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

hasshy

2019/12/21 18:17

ご回答いただきありがとうございます。 Linuxサーバにデフォルトでsmtp機能が付いている可能性があるのですね。 勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問