実現したいこと
ここに実現したいことを箇条書きで書いてください。
- フォームに入力されたアドレスにメールを送信したい。
前提
ここに質問の内容を詳しく書いてください。
PHPで掲示板アプリを作っています。
フォームに入力したメールアドレス宛に会員登録用のメールを送信したいのですが、
メール送信がうまくできません。
発生している問題・エラーメッセージ
<?php $email = ''; if (isset($_POST["email"])) { $mail = $_POST["email"]; if (preg_match("/^([a-zA-Z0-9))+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $mail)) { $from = "test@example.com"; $subject = "会員登録"; $message = '下記URLから本登録に進んでください。<br> <a href="entry.php"></a>'; $header = "From: {$from}\r\nReply-To: {$from}\r\n"; $result = mb_send_mail($mail, $subject, $message, $header); if ($result) { $msg = "メールを送信しました。"; } else { $msg = "メールの送信に失敗しました。"; } } else { $msg = "メールアドレスが不正です。"; } } else { $msg = ""; } ?>ページには「メールを送信しました。」と表示されます。 ### 該当のソースコード Macを使用しています。 Postfix設定で etc/postfix/main.cfの末尾に下記を追記 myorigin = gmail.com myhostname = smtp.gmail.com relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/アプリパスワード smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = plain inet_protocols = all smtp_use_tls = yes smtp_tls_security_level = encrypt tls_random_source = dev:/dev/urandom etc/postfix内に下記を記載したアプリパスワードファイルを作成 [smtp.gmail.com]:587 自身のメールアドレス@gmail.com:アプリパスワード ```HTML ```<form action="" method="post" enctype="multipart/form-data"> メールアドレス:<input type="text" name="email" value="<?php echo $mail; ?>"> <input type="submit" value="登録する"><br><br> <?php echo $msg; ?> </form> ```PHP ソースコード
試したこと
ここに問題に対して試したことを記載してください。
・postfixを起動できていないのかと思いターミナルで「sudo postfix start」を実行。→「the Postfix mail system is already running」すでに動いているようです。
・ターミナルで「date | mail -s test メールアドレス」を実行。→メール受信できませんでした。
・送信先にgmailを使用していたが、yahooメールで再度実行。→こちらも受信できません。
様々なブログ等調べましたが原因がわからず途方に暮れております。
わかりにくければ申し訳ございませんが、何か情報ご教示いただけますと幸いです。
よろしくお願いいたします。

あなたの回答
tips
プレビュー