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

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

新規登録して質問してみよう
ただいま回答率
85.35%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

PHP

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

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

メール

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

Q&A

解決済

1回答

1570閲覧

PHP7.4.21 Mac環境でPostfixを使用したsend_mail関数の仕組みがわからない

nisina_

総合スコア2

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

PHP

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

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

メール

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

0グッド

0クリップ

投稿2021/09/12 11:51

前提・実現したいこと

お世話になっております。
先程、send_mailについて質問させていただきましたが、新たに分からないことが出てきたのでご質問させてください。

Mac環境でsend_mail関数の実装を調べていたところ、Postfixというワードに辿り着きました。
下記サイトを参考にコマンドを実行し、メール処理の実装ができましたが、phpのsend_mailが実行できるようになった仕組みがわかりません。
windows環境の実装方法を調べたところ、「php.ini」、「send_mail.ini」を編集し、sendmailを有効化するイメージが掴めたのですが‥。

※参考にしたサイト
【macOS×XAMPP】sendmail.iniなんてないけど、どうやってPHPでメール送るの??(Gmail経由)
https://qiita.com/gami_/items/5898aba8e237d0c94f53#2-postfix%E3%81%AE%E8%A8%AD%E5%AE%9A
MAMPのローカル環境からメールを送信する方法を丁寧に解説
https://dezanari.com/mamp-mail/#toc5

ご回答いただけると幸いです。
よろしくお願いいたします。

該当のソースコード

cd /etc/postfix/ sudo vi main.cf --- main.cfに追加 --- relayhost=[smtp.gmail.com]:587 smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_use_tls=yes smtp_tls_security_level=encrypt tls_random_source=dev:/dev/urandom smtp_sasl_security_options = noanonymous smtp_always_send_ehlo = yes smtp_sasl_mechanism_filter = plain --- ここまで --- sudo vi sasl_passwd --- ssl_passwdに追加 --- [smtp.gmail.com]:587 GMAILメールアドレス:パスワード --- ここまで --- sudo chmod go-rx sasl_passwd sudo postmap hash:/etc/postfix/sasl_passwd sudo postfix reload

php

1<?php 2 $to = 'user01@example.com'; 3 $subject = 'テスト送信'; 4 $message = 'mb_send_mail関数!'; 5 $header = 'From : Hello@example.com\n'; 6 $header .= 'X-Mailer : PHP7\n'; 7 8 if(mb_send_mail($to,$subject,$message,$header)){ 9 echo '送信に成功しました。'; 10 } 11 else{ 12 echo '送信に失敗しました。'; 13 } 14 ?>

補足情報(FW/ツールのバージョンなど)

MacOS Big sur 11.5.2
MAMP
PHP7.4.21

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

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

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

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

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

guest

回答1

0

ベストアンサー

質問ポイントが分かりません。

前の質問で、PHPのmb_send_mail/usr/~~/sendmailが起動されて送信キューに入ることまで説明したと思いますが、Postfixを起動することで、Postfixのプロセスが送信キューから取り出して実際に外部のSMTPサーバー(その設定だとGmailのSMTPサーバー)に送っています。

ということくらいは分かると思うのですが、どの辺が不明点なのでしょうか?
Postfixの設定の各行の意味?

投稿2021/09/12 13:23

otn

総合スコア85901

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

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

nisina_

2021/09/12 14:58

otn様 ご指摘ありがとうございます。 >前の質問で、PHPのmb_send_mailで/usr/~~/sendmailが起動されて送信キューに入ることまで説明したと思いますが /usr/sbin/配下にsendmailがないのに、mb_send_mailが実行できるのは何故だろう?というのが不明点でした。 ただ、先程,rootユーザーでusr/sbin配下にsendmailがあることを確認しました。 私の思い込みで、sendmailが無いと勘違いしてしまいました。 お手数をおかけして申し訳ないです。 sendmailが確認できたためベストアンサーとさせていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問