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

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

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

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

XAMPP

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

Q&A

解決済

1回答

1326閲覧

XAMPPのsendmailを使ってメール送信したい(メールサーバー:mailtrapを利用)

ikedasn0621

総合スコア1

PHP

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

XAMPP

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

0グッド

0クリップ

投稿2023/03/06 09:05

実現したいこと

・ PHPでメールフォーム(問い合わせフォーム)を作成する。
・ ローカル環境(XAMPP)でもメールを送受信できるようにする。
・ 「regist.html」でフォーム入力し「confirm.php」で内容確認の後「complete.php」でメール送信する。
・ mailtrapのInboxにメールが届くようにする。

前提

会社のHPの問い合わせフォームのテストのためローカル環境(XAMPP)でphpファイルがうまく動くかテストしています。
SMTPサーバーにはmailtrapを利用するのが簡易と聞いたのでmailtrapを使おうとしています。

発生している問題・エラーメッセージ

regist.htmlで入力した情報をcomplete.phpで送信すると、errorは特に出ない(errorのログファイルには特に何も出力されず、ページ遷移もスムーズ)のですが、MailtrapのInboxには何も届きません。

該当のソースコード

PHP

1<?php 2if($_SERVER["REQUEST_METHOD"] != "POST"){ 3 header("Location: index.php"); 4 exit(); 5} 6 7mb_language("Japanese"); 8mb_internal_encoding("UTF-8"); 9 10$to = "xxx@example.jp"; 11$subject = "XXXXXXXXXX"; 12$message = <<< EOM 13 14下記内容の問い合わせがありました。 15━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16【 名前 】 17{$_POST["name"]} 18 19【 メール 】 20{$_POST["email"]} 21 22 23【 問い合わせ内容 】 24{$_POST["contact_body"]} 25 26━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 27EOM; 28 29$headers = "From: xxx@example.jp"; 30 31mb_send_mail($to, $subject, $message, $headers); 32?> 33<!DOCTYPE html> 34<html> 35<head> 36<meta charset="utf-8"> 37<title>完了画面</title> 38<style type="text/css"> 39 body { 40 background-color: #f9fff2; 41 } 42</style> 43</head> 44<body> 45 <h2>お問い合わせ完了</h2> 46 <p>お問い合わせありがとうございました。</p> 47 <p>今後とも当サイトをよろしくお願いいたします。</p> 48 <p><a href="index.php">お問い合わせトップへ</p> 49</body> 50</html>

試したこと

https://qiita.com/e__ri/items/ba030448eda141bfb593
上記サイト等を参考にして、xamppファイル下の"sendmail.ini", "php/php.ini"は編集しています。

php.ini
sendmail_path = “\”C:\xampp\sendmail\sendmail.exe\” -t”

sendmail.ini
smtp_server=sandbox.smtp.mailtrap.io
smtp_port=2525
smtp_ssl=tls
auth_username=X--------X (MailtrapのIntegrations: PHP- Laravel 7+で表示される実際のUSERNAME)
auth_password=X--------X (MailtrapのIntegrations: PHP- Laravel 7+で表示される実際のPASSWARD)
force_sender=X--------X(MailtrapのIntegrations: PHP- Laravel 7+で表示される実際のUSERNAME)

===============================
当方phpを使ったHP作成などはこれまで経験なく、ついに行き詰ってしまいました。解決策をご教示頂ければ幸いです。

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

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

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

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

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

guest

回答1

0

自己解決

sendmail.iniで
smtp_ssl=tlsとしていたところ
smtp_ssl=noneとしたところ、とりあえずmailtrapでメールが確認できました。
SSL化がうまくいっていなかったようでした。これについては別途調べます。

投稿2023/03/07 05:37

ikedasn0621

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問