php
  • email
  • function
  • 2012-01-04 64 views 0 likes 
    0

    我有我想通過PHP的郵件功能來發送索姆HTML郵件,PHP郵件功能不發送的郵件

    所以我有這樣的:

    $to = "[email protected]"; 
    $from = "[email protected]"; 
    $subject = "Some subject" 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $headers .= "From: $from" . "\r\n"; 
    $headers .= "Return-path: $from" . "\r\n";  
    $headers .= "Bcc: $from\r\n"; 
    $message = "some html"; 
    mail($to, $subject, $message, $headers); 
    

    但它總是didnt發送郵件,如果我測試它:

    if (mail($to, $subject, $message, $headers)) {echo "Sent";} 
    else {echo "Didnt send";} 
    

    我總是得到Didnt發送和沒有錯誤信息。什麼可能是錯誤的?

    +0

    你能記錄它發出的錯誤嗎?它可能與您的電話或SMTP服務器中的變量有關。更多地傾向於前者。 – JonLim 2012-01-04 14:38:12

    +0

    您的服務器配置爲發送郵件嗎? – 2012-01-04 14:38:29

    +0

    你是否起訴專用或共享服務器?一些提供者博客郵件發送 – 2012-01-04 14:38:49

    回答

    1

    檢查你的PHP錯誤日誌。它可能有更多的細節,以什麼是失敗的。通常,徹底的郵件()失敗是由於配置錯誤的SMTP服務器設置,或根本沒有SMTP服務器。

    如果SMTP服務器拒絕電子郵件,它也可能失敗,所以請檢查SMTP服務器日誌並查看它是否在郵件設置中抱怨某些內容。

    除此之外,不要使用郵件()爲MIME格式的電子郵件。使用類似PHPMailerSwiftmailer爲你做。他們更可靠,並提供更好的診斷錯誤信息,當一些事情爆炸。

    0
    • 檢查是否所有變量都被填充。如果是這樣的話。
    • 打開錯誤和警告報告<?php error_reporting(E_ALL); ?>
    • 如果沒有,請檢查您的日誌是否顯示任何信息。
    • 測試郵件是否到達其他地址。例如一個Gmail帳戶。
    • 如果沒有檢查您的服務器和SMTP設置。
    • 如果全部失敗,請使用(外部)SMTP嘗試swiftmailer
    +0

    感謝您的建議!問題解決了。服務器阻塞所有具有密件抄送的郵件()。 – Lukaydo 2012-01-10 13:36:28

    +0

    如果您的serveradmin無法解決這個問題,請使用帶外部SMTP的swiftmailer。 – mat 2012-01-10 14:04:55

    相關問題