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

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

ただいまの
回答率

88.05%

PHP mail() 関数は成功しているのに、メールサーバー側で受信できていない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,721

 前提・実現したいこと

wordpressでフォーム完了メール送信機能を追加しようとしています

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

参考サイトや、同僚の過去実績コードからコピーしたコードで実現しようとしましたがうまくいきません

 環境

Flywheel
プラグイン未使用(カスタマイズが必要な為、使用できない)
WordPress 4.9.7

フォーム入力完了時後の、遷移先の固定ページにて動作予定。
(フォーム確定→固定ページに遷移→読込時に動作して送信)

 該当のソースコード

    $to = "gmailなどのフリーメールアドレス";
    $from = "$toとは違うフリーメールアドレス";
    $subject = "テストタイトル";
    $text .= "text";

    $original_encoding = mb_internal_encoding();
    $original_language = mb_language();

    mb_language("ja");
    mb_internal_encoding("ISO-2022-JP-MS");

    $header = '';
    $header .= "Content-Type: multipart/mixed;boundary=\"__BOUNDARY__\"\n";
    $header .= "MIME-Version: 1.0 \n";
    $header .= "Return-Path: " . $to . " \n";
    $header .= "From: " . $from ." \n";
    $header .= "Sender: " . $from ." \n";
    $header .= "CC: " . $from ." \n";
    $header .= "Reply-To: " . $from . " \n";

    $body = "--__BOUNDARY__\n";
    $body .= "Content-Type: text/plain; charset=\"ISO-2022-JP-MS\";\n\n";
    $body .= mb_convert_encoding($text, 'ISO-2022-JP-MS', $original_encoding) . "\n";
    $body .= "--__BOUNDARY__--";

    /* Mail, optional paramiters. */
    $sendmail_params = "-f$from";

    $subject = mb_convert_encoding($subject, "ISO-2022-JP-MS", $original_encoding);
    $subject = mb_encode_mimeheader($subject, 'ISO-2022-JP-MS');

  // Send Mail
  if (mail($to, $subject, $body, $header, $sendmail_params)){
        echo "ok";
  } else {
        echo "no";
   }

    mb_internal_encoding( $original_encoding );
    mb_language( $original_language );

 試したこと

上記記述で、

  if (mail($to, $subject, $body, $header, $sendmail_params)){
        echo "ok";


は、成功しています。
mb_send_mailなども試しましたがうまくいきません。
送信先はgmailやクイックメールなどを使いましたが全て受信できませんでした。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mimic_teratail

    2018/08/02 18:24

    >>osamuyaさん、error_reporting(-1); ini_set('display_errors', 'On'); set_error_handler("var_dump");を使って見ようとしていますが、情報量が多すぎてわかりません・。。

    キャンセル

  • mimic_teratail

    2018/08/02 18:25

    >>m6uさん、テスト環境はmacです。もしかしたらそもそも、flywheelで立ち上げただけだったのでメールサーバー自体ないですね・・・自動でついてくるものだと思っていました。会社の開発環境を使ってやってみます。

    キャンセル

  • m.ts10806

    2018/08/05 18:32

    「すぐにトライして、結果報告します。」の結果がないのに「解決済み」というのはどういうことでしょうか。どのように解決したのか書いてください。https://teratail.com/help/question-tips#questionTips4-2 > あなたがどのアドバイスを元に、どのように解決できたのかをお礼とともに伝えましょう。

    キャンセル

回答 2

checkベストアンサー

+2

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/08/02 18:26

    すぐにトライして、結果報告します。

    キャンセル

+1

mail関数はやるだけやって終わりで届いたかどうかは関与しません。
またローカルのサーバにメール"サーバ"(postfixなど)が立ち上がってる必要があります。
なおかつpostfixなどでmailが送信できる必要があります。

より簡単にmailを送る場合はPHPMailerを使いgmailなどのSMTPサーバを経由し送信するほうは良いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/08/02 18:26

    今、試行錯誤していてメールサーバーに関して全く触れていなかった事に気が付きました。
    確認し、メールサーバーが確実に立ち上げられている環境で触ってみます。

    キャンセル

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

  • ただいまの回答率 88.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る