簡體   English   中英

如何測試為什么sendmail / php無法正常工作?

[英]How can I test why sendmail / php isn't working?

我認為php.ini配置正確,我認為...

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /usr/sbin/sendmail -t -i 

php通常運行良好。 phpinfo()看起來不錯。

我有一個用於發送測試消息的腳本,它聲稱可以正常工作。

<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$from = "notarealaddy@domain.com";
$to = "myactualemail@gmail.com";
$subject = "PHP Mail Test script";
$message = "This is a test to check the PHP Mail functionality";
$headers = "From:" . $from;
mail($to,$subject,$message, $headers);
echo "Test email sent";
?>

我總是收到一條消息:“發送測試電子郵件”

但沒有任何東西可以顯示在gmail中嗎? 怎么辦,我應該如何排除故障?

嘗試這個:

if(mail($to,$subject,$message, $headers))
{
echo "Test email sent";
}

這將檢查是否已發送郵件,如果已發送,它將回顯“測試電子郵件已發送”。

首先也是最快:檢查您的垃圾郵件文件夾。 Gmail傾向於過濾掉不是來自完善的郵件服務器的郵件。

其次,檢查發送電子郵件的服務器上的sendmail日志。 日志應告訴您接收SMTP服務器是否已接受該消息。

mail功能返回成功僅意味着本地sendmail腳本接受了電子郵件,而不一定發送了電子郵件。

如果您使用聯系表格,請仔細檢查您的變量。 在您的情況下,它們是硬編碼的,但是執行檢查總是好的。 這是一個簡化的檢查器。 (我編輯了檢查是否應該隨消息一起發送的變量)

    if (mail ($to, $subject, $body, $headers)) {
         echo '<p>Message Send.</p>';
    } else {
         echo '<p>Something went wrong, not delivered.</p>';
    }

mail()是布爾函數。

$check = mail($to,$subject,$message, $headers);
var_dump($check);

var_dump將返回true或false。

如果為假,則說明配置或代碼有問題。

但是,要簡要調試您的mail()函數,我需要知道您的操作系統是什么? 您使用哪種類型的Web服務器?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM