簡體   English   中英

來自php郵件功能的電子郵件通訊不再發送

[英]Email newsletter from php mail function not sending anymore

我有一個用php設置的頁面,用於向在我的網站上注冊的電子郵件發送新聞通訊。 前幾天,當我將其發送給30封電子郵件時,該代碼運行良好。 每個人都收到了電子郵件通訊。 兩個新人簽約了,現在當我嘗試發送一個時,好像發送時沒有任何代碼錯誤,但是沒有人收到新聞通訊。

它與無效的電子郵件地址有關,該電子郵件地址會導致其無法正常工作? 好像其中一個新的無效並關閉了它? 我什么也沒做,可以將代碼從正常工作時更改為之前的30封電子郵件。 我的托管公司每天允許超過250封電子郵件,所以這根本不是問題。

$mailto = "members@example.com" ;
$headers = "From: chris@example.com \r\n";
$headers .= "Reply-To: chris@example.com \r\n";
$headers .= "BCC: $emails \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$from='members@example.com';
$subject="TEST";
$body='<html><body>';
$body.= "<table><tr><td>$content etc...</td></td> </body></html>";
if (mail($mailto,$subject,$body,$headers)) { 
code... ; } 
else { 
code... ; }

我要做的是使用一些SMTP服務器,例如google和PHPMailer,或類似的東西。 對於您來說,這也是最好的解決方案,因為在PHP中使用mail函數可能會有些危險。 許多郵件服務器認為這些電子郵件是垃圾郵件,因為它們不是由已知服務發送的。 首先,嘗試找出未收到的電子郵件是否已落入垃圾郵件文件夾。 如果不是這樣,並且如果您的時間不允許使用PHPMailer,請嘗試從PHP代碼段手動發送電子郵件,看看實際發生了什么。

基於這一行:

$headers .= "BCC: $emails \r\n";

您將所有收件人放在一個標題行中。

這可能由於至少三個原因而失敗:

1)只要該行的長度超過 998個字符,該郵件就會違反rfc2822 ,因此郵件服務器可能會拒絕它。

2)大多數SMTP服務器對單個郵件中的收件人數量有限制,因此有時會達到此限制(不過,30個收件人看起來並不多)。

3)電子郵件地址中任何嚴重的語法錯誤都可能使整行無效。

另外,了解此處使用的是SMTP服務器可能會有所幫助。 如果您有權訪問郵件服務器日志,顯然您也應該進行檢查。

解決方法是,您可能要遍歷訂閱者列表,並在“ To字段中向每個訂閱者發送一條不同的消息,而根本不使用Bcc 無論如何,這也更好地通過了垃圾郵件過濾器。

暫無
暫無

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

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