[英]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.