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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

PHP

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

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

5回答

3626閲覧

PHP CentOS mail関数を使って、PHPで送信完了までに60秒かかる。

K_T_T_K

総合スコア231

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

PHP

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

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2015/02/17 01:43

編集2022/01/12 10:55

PHPを使ってメールを送信するコードを書きました。

lang

1<?php 2$time_start = microtime(true); 3if (mail("自分のメールアドレス", "TEST MAIL", "This is a test message.", "From: from@test")) { 4 echo "メールが送信されました。"; 5} else { 6 echo "メールの送信に失敗しました。"; 7} 8$time_end = microtime(true) - $time_start; 9error_log($time_end);

しかし、60秒後に
メールが送信されました。
何か解決策ありましたらアドバイス宜しくお願いします。

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

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

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

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

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

guest

回答5

0

以前にCentOS + qmailで自ホストへのルーティングだった場合に異常に時間がかかったのを記憶しています。
テストにおいて、同ホスト宛てに送ったメールだったりはしないでしょうか?

それとNgixあたりが入っているところを見るともしかしたらPleskかなにかサーバ管理系のツールが入っていたりするとMTAはqmailかpostfixとなります。
しかしPleskに同梱された形で組み込まれるためにもしかしたらメールのログは/usr/local/psa/var/log/maillogとかになっているかもれません。
もし、/var/log/内のログがファイルはあれど中身が空だったりした場合には確認してもいいかもしれません。

投稿2015/02/27 23:16

編集2015/02/27 23:19
hayashi_kohei

総合スコア47

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

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

0

tail -f /var/log/maillog といったような方法で見ると最新のログのみ表示されますよ。
しかもログの流し読み(ログが流れる)ので、メールの送信コマンドと連動して確認を行えるので便利です。

catコマンド等一見便利なのですが、運用環境などでログを確認した際に、大量のログが表示されて訳が分からなくなりますので、tail コマンドの方が良いと思います。
私も、メールログ等、運用しているサーバでログを確認する際は、tail -f ~~~~などで参照しています。

あまりに多い場合は、tail -f /var/log/maillog | grep example@example.com みたいに対象のメールログだけ出力されるようにしたりとか・・・・

投稿2015/02/18 11:37

takayukiinaba

総合スコア1158

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

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

0

phpのmail関数は、内部的にはサーバ内のsendmailやpostfixを利用していた様に思います。
これら自体が、キューに登録されたメールを定期的に送るような動きになっていると、そういった動作になるような気がします。
https://lists.openshift.redhat.com/docs/manuals/enterprise/RHEL-5-manual/ja-JP/Deployment_Guide/s2-sysconfig-sendmail.html

主にsendmailを利用していると起こりそうですが、その辺りも確認されてみては如何でしょうか。

投稿2015/02/17 06:23

utun

総合スコア384

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

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

0

メールの送信ログを確認してみてください。

$ sudo cat /var/log/maillog

どの過程でどのくらいの時間がかかっているのか記録されています。
http://www.sava-can.jp/help/svseries/server_management/02.html

一応念のためですが、microtime()は秒ではなく、マイクロ秒で返ってきます。
この単位の読み違えとかはないですよね??

投稿2015/02/17 02:57

munyaX

総合スコア783

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

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

0

Linuxにログインし、mailコマンドでメールを送ってみる。
送られなかった場合、/var/log/maillog あたりを見る。。。

投稿2015/02/17 02:25

tomomo

総合スコア430

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問