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

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

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

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

1回答

5141閲覧

XamppのMercuryによるメールの送信、上手くいかない。設定に問題があるのか?

kenji_plus

総合スコア4

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

1クリップ

投稿2020/06/16 04:42

編集2020/06/18 01:43

Windowsを使用しています。XamppのMercuryを使い、PHPのmb_send_mail関数を使ってのMailの送信を試みているのですが、上手くいきません。ネットに掲示されている情報を元に、php.iniとMercuryの設定を行なっていますが、うまくいきません(複数のネットで同じ様な方法が提示されている)。

ご指導くださると助かるのですが。

PHPのmb_send_mail関数自体は正常に作動していると思われます。Browserには、正常に機能した際に表示されるメッセージ”メールを送信しました。”が表示されます。 送信後の状況は、Browserに上記の表示が示される以外、何もありません。(エラーメッセージ等も、ありません。)自身の持つ他のメールアドレスへ送信するのですが、こちらに受信されません。

下記に作動時の環境、自分が行ったphp.iniの設定、mercuryの設定を順に記していきます。

  1. mb_send_mailの作動時の環境

Windows: 8.1
PHP: ver 7.2.0
Xampp(control panel): v3.2.2
Mercury Mail Transport System: 4.6.2
Apache: 2.4.29

ノートンセキュリティーを使用していますが、操作中は一時的にOffとしています。

  1. php.iniの設定:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP=localhost
; http://php.net/smtp-port
smtp_port=25;

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = xxxxxxx@yyyy.ocn.ne.jp

;ForWin32only.
;SMTP=localhost
;smtp_port=25;

;ForWin32only.
;sendmail_from= xxxxxxx@yyyy.ocn.ne.jp
[ODBC]

php.iniの設定は、[mail function]の部分で行いますが、上記のように同じような内容が上下に2か所あります。同じ様にSMTP, smtp_port, sendmai_fromlを記述するようになっていますが、上の方はhttp://php.net/smtp, smtp-port, sendmail-from等、が含まれています。

使い分けが分からないため、両者ともに、別々に同じ内容で試してみました。
SMTPは、SMTP=localhost, とし、
smtpは、smtp=25, 587の二つを試しています。
Sendmail_from は、Sendmail_from=私のOCNメールのメールアドレスを記入しています。

上記のコードで示されるのは、http://php.net/smtp, http://php.net/smtp-port, http://php.net/sendmail-from等、が含まれているケースで、SMTP=localhost、smtp_port=25;としたケースを示しています。他のケースでは、それぞれのケース、或いは値が生きるように、それぞれのコメントアウトが生かされ、或いは外されています。

3.Mercuryの設定
a. Xamppのcontrol panelのmercuryより「Admin」をクリックし、管理画面を表示、メニューバーよりConfiguration->Protocol Modulesを選択。「MercuryS SMTP Server」と「MercuryC SMTP Relaying client」にチェックを入れ、残りの項目はすべてチェックを外しています。

b. メール中継用の設定
 「MercuryS SMTP Server」を選択し、「Connection control」を選択。「Do not permit SMTP relaying of non-local mail」と「Authenticated SMTP connections may relay mail」のチェックが外れていることを確認。他はデフォルトのまま。
 メニューから「MercuryC SMTP client」を選択。
 下記を設定
SMTP”Smart”Host detailsを下記のように設定しています。
• Smart host name: smtp.vcbird.ocn.ne.jp
• Connect to TCP/IP port:465
• Credentials for SMTP Authentication, if required
• Username: OCN会員登録書に記載される認証ID[接続ID]を記入。
• Password: OCN会員登録書に記載される認証パスワード[接続パスワード]を記入。

Note: smtp.vcbird.ocn.ne.jpはOCNのsmtpサーバー、465はOCNの送信サーバーのポート番号です。
何れもocnのガイドラインhttps://support.ntt.com/ocn/support/pid2990021006より、入手したものです。

以上です。

メール送信ができないのは、多分、自身の解釈に間違いがあり、間違った数値、或いは、パラメーターを入力しているのかもしれません。ご指摘いただけると嬉しいです。

自分はPHP初心者です。上記のメール、或いは通信に関する知識は、少なく、ガイドライン、或いはマニュアルに沿って、作業する程度のことしかできません。

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

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

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

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

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

satokei

2020/06/30 10:17

Mercuryのログには何か出力されていないのでしょうか?
kenji_plus

2020/07/01 00:03

Satokei様、ご連絡下さり有難うございます。Mercuryのログですが、xamppのコントロールパネル上のmercuryのログのボタンを押すのですが、ログの画面は出てこず、<Browse>の小さなウインドウが表示され、さらにこれを押すとxampp/mercury/LOGSのディレクトリーに導かれ、”このフォルダーは空です。”の表示です。何かをしなければいけないのかもしれませんが、分からないため、特に何もしていません。 同じxamppのApacheとMySQLのログは、正常にログが記述されています。 ご指導いただけると有りがたいです。
satokei

2020/07/07 14:13

「MercuryC SMTP Relay Client Configuration」画面に、ログ出力の設定があるようですね。
kenji_plus

2020/07/08 02:21

Satokei 様、 有難うございます。ご指摘の「MercuryC SMTP Relay Client Configuration」画面、ようやく気が付きました。この画面の中に示されるGeneralの中でLoggingの設定ができるとの示唆と理解いたしました。この中には、General loglife, Delivery failure template, Session logging directoryの3項目があります。この内、Delivery failure templateには既にdirectoryを示す内容が記述されテンプレートが用意されています。Session logging directoryは、特にわかりません。取りあえず、General log lifeのwindowにdirectory/fileを自分で記述し、verboseのクリックwindowにはクリックを入れて、様子を見てみたいと思います。 結果を別途ご連絡いたします。 適切なガイドを下さり、有難うございます。
kenji_plus

2020/07/10 02:56

Satokei 様、mercury.logというログファイルを作成し、c:xampp/MercuryMail/LOGSに配置、Mercury C SMTP Relay client configurationの画面のGeneral log fileのwindowには、その旨、c:xampp/MercuryMail/LOGS/mercury.logを記載しました。 その後、mb_send_mailを実行。前回と同じように、ブラウザには、「メールを送信しました。」の表示。実際には、送信されていませんが。一方、mercuryのログファイル、上記で設定したファイルをxamppのコントロールパネルのmercuryのLogsをクリックしさらにファイルを開いてみましたが、ここには、何も書かれていません。ウーム、何かを設定しなければ、logも記載されないのかもしれない。コントロールパネルのhelpをクリックするが、このバージョン(windows8.1)ではhelpは使用できないとの表示。 一方、apacheのLogsをクリックし、更に、Apache(acess.log)をクリックして同時刻のログを調べてみると、 下記が表示されています。 ::1 - - [09/Jul/2020:20:36:16 +0900] "GET /mb_send_mail.php HTTP/1.1" 200 33 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36" Apacheでのmb_send_mail.phpの実行を確認する内容なのかもしれませんが、参考までに添付しました。
satokei

2020/07/10 15:11

Mercury を使ったことはないので、なぜログが出力されないかは分かりません。 ちなみに、「SMTP”Smart”Host details」で SSLを有効にしていますか? ※『ネットに掲示されている情報』は、質問にURLを提示していただけますか。
kenji_plus

2020/07/18 00:07

Satokei 様、いつも的確なアドバイスを頂き、有難うございます。返事が遅れ申し訳ありません。 SMTP “smart”Host detailsのSSLの件ですが、今までは、defaultのNormal(no SSL encryption)でした。(特に、触っていませんでした。) 今回、アドバイスに従い、これをSSL encryption using direct connection, とSSL encryption via START TLS commandの二つを試してみました。結果的には変化はなく、送信には成功していません。 ご報告いたします。有難うございます。
guest

回答1

0

Gmailで試してみて送信ができましたので、OCNの問題かもしれません。
OCNでうまくできないのであれば、Gmailを使用してみてはいかがでしょうか。
※設定すればGmail以外のメールアドレスからGmailで送信できます。

設定内容

「MercuryC SMTP Relay Client Configuration」画面

  • SMTP”Smart”Host details
    ・Smart host name: smtp.gmail.com
    ・Connection port/type: 以下のいずれかの組み合わせ
porttype
465SSL encryption using direct connection
587SSL encryption via START TLS command
  • Credentials for SMTP Authentication , if required
    ・[Login username] [Password] を設定
確認方法
  • Mercury のメニュー:File>Send mail message... からメール送信

mb_send_mail関数では確認していないです。


その他

以下のページを見ると、
SMTPサーバーのホスト名が「smtp.vcOOOO.ocn.ne.jp」の形式の場合は、
ポート番号に「587」を使用するようですが、設定はあっているでしょうか?

https://answers.microsoft.com/ja-jp/msoffice/forum/all/ocn%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%81%E4%BF%A1/27eb89c7-2222-431d-8585-7dc831d05d60

投稿2020/09/08 16:20

satokei

総合スコア1217

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

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

kenji_plus

2020/09/10 01:07

satokei様、 本件について引き続きご検討下さり、頭が下がります。有難うございます。今回いただいた内容を基に自分でためしてみます。結果が出るまで少々お待ちいただけますか? 狩野
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問