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

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

新規登録して質問してみよう
ただいま回答率
85.37%
PHP

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

1回答

184閲覧

mailhogでメールが受け取れない

Bez

総合スコア1

PHP

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2024/10/11 01:33

実現したいこと

ローカル環境でPHPを使ってメール送信テストをしたいと思っています。
ターミナルでphp.iniの設定からsendmail_path="/opt/homebrew/bin/mailhog sendmail"に変更し,
MAMPを起動しPHPのmail関数を使ってメール送信をしようと試みました。

発生している問題・分からないこと

タイトルにある通り、この手順ではmailhogにメールが反映されませんでした。

該当のソースコード

PHP

1$to = "test@test.com"; 2$subject = "TEST"; 3$message = "This is Mailhog.\r\nHow are you?"; 4$headers = "From: me@example.com"; 5mail($to, $subject, $message, $headers);

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

1、mhsendmailをインストールしましたが、どのようにsendmail_pathに記述すればわからなかったため、sendmail_path="/opt/homebrew/bin/mailhog mhsendmail"やsendmail_path="/opt/homebrew/bin/mhsendmail"などと変更しましたが変わりませんでした。
2、php.iniが反映されているか確認するためphpinfoを使いましたが、「/usr/sbin/sendmail -t -i」と記述されていました。反映されていないと思いましたが、ターミナルでのphp.iniの変更はvs.codeで開いたphp.iniには反映されています。
この場合はphp.iniの変更は反映されていないと考えるべきでしょうか(一応、変更した後はMAMPを再起動しています)。

php.iniが反映されていないとするならば、php(test.php)の記述かphp.iniに問題があると思うのですが、
1、test.phpは/Applications/MAMP/htdocsで開いているのですが、初心者ながらの考えではありますがtest.phpの入れる場所に問題などがあるのでは
2、php.iniのsendmail_pathの記述に誤りがあるのでは

補足

まとめますと、
mailhogが反映されず、php.iniのsendmail_pathの変更をしたが変わらなかったため、php.iniの変更を確認したが変更されているかどうかが判断できない。
また変更されているとすれば、sendmail_pathの記述の誤り、あるいはtest.phpの配置などの誤りがあるのではと考えた。
あるいは、自分が気づいていない部分(sendmail_path以外のphp.ini設定など)に問題解決がつながっているのではと考えた。

長文で申し訳ありませんが、ご教授いただけたらありがたいです。

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

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

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

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

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

guest

回答1

0

自己解決

自己解決いたしました。
mampとphpのバージョンが一致しておらず、間違ったバージョンのphp.iniファイルにsendmail_pathを設定しておりました。
sendmail_pathにmhsendmailのパスを入れることで無事mailhogにメールが送信されました。

投稿2024/10/14 23:13

Bez

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問