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

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

ただいまの
回答率

89.70%

PHP(mb_send_mail)でメールが送信できない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,412

kamuy5532

score 35

mb_send_mailを使用してサーバーからログインシステムの確認メールとしてメールを送りたいのですが送信されません。

環境

# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) 

# php -v
PHP 7.1.16 (cli) (built: Mar 28 2018 13:19:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

メール送信フォーム

        //メールの宛先
        $mailTo = $mail;

        $name = "ウェブの葉ショップ";
        $mail = 'root@vultr.guest';
        $subject = "【ウェブの葉ショップ】会員登録用URLのお知らせ";
$body = <<< EOM
24時間以内に下記のURLからご登録下さい。
{$url}
EOM;

        mb_language('ja');
        mb_internal_encoding('UTF-8');

        //Fromヘッダーを作成
        $header = 'From: root@vultr.guest' . mb_encode_mimeheader($name). $

        if (mb_send_mail($mailTo, $subject, $body, $header)) {

                echo "メール送信成功しました。";

                //セッション変数を全て解除
                $_SESSION = array();

                //クッキーの削除
                if (isset($_COOKIE["PHPSESSID"])) {
                        setcookie("PHPSESSID", '', time() - 1800, '/');
                }

                //セッションを破棄する
                session_destroy();

                $message = "メールをお送りしました。24時間以内にメールに記$
        }else{
   $errors['mail_error'] = "メールの送信に失敗しました。";
   echo "メール送信失敗しました。";
   }

ページ上には「メール送信成功しました」としっかり返ってきます。

talnetによる動作テスト

# telnet alt4.gmail-smtp-in.l.google.com 25
Trying 209.85.144.27...
telnet: connect to address 209.85.144.27: Connection timed out
Trying 2607:f8b0:400d:c0e::1a...
telnet: connect to address 2607:f8b0:400d:c0e::1a: Network is unreachable

maillog

w314m0ej022713: sender notify: Warning: could not send message for past 4 hours
to=root, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=32038, dsn=2.0.0, stat=Sent
to=<送信先アドレス>, ctladdr=<apache@vultr.guest> (48/48), delay=06:30:18, xdelay=00:24:00, mailer=esmtp, pri=480633, relay=mx3.mail.yahoo.co.jp. [183.79.16.243], dsn=4.0.0, stat=Deferred: Connection timed out with mx3.mail.yahoo.co.jp.

何かお分かりの方いらっしゃたっらご指摘お願い致します。

参考にさせて頂いたサイト様

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • TaichiYanagiya

    2018/04/02 23:04

    外部の 25番ポートに接続できないようですね。OP25B ではないでしょうか?

    キャンセル

回答 2

check解決した方法

0

OP25B(Outbound Port 25 Blocking)対策をしたところ、治りました。

Gmailのメールサーバーから送信するメールはOP25Bの影響は受けないため、全ての送信メールをGmailを経由して送信するようにしました。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

Linuxのmailコマンドでは送信できますか?
それで送信できなければ、Linux側の設定かもしれません。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

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