2014-02-18 73 views
-1

我想讓Swiftmailer工作,但不斷收到「收件人拒絕」的消息。

什麼導致「收件人拒絕」迴應?這是來自gmail服務器的響應(gmail感覺這是垃圾郵件)?有沒有辦法解決這個問題?否則,我將放棄Swiftmailer並嘗試PHPMailer。我以前在PEAR包裝方面取得了成功,但厭倦了配置,並且首先嚐試了Swiftmailer ......這不應該是這個難題嗎?
Swiftmailer錯誤:收件人被拒絕

My Configuration:
- PHP 5.5.6
- Swiftmailer 5.0.3 (with Logger Plugin)
- Hosting by GoDaddy (yeah...I know)

Goal: Use Swiftmailer to send SMTP message from [email protected] to [email protected]
(obviously the email addresses are placeholders for actual addresses)


這裏是PHP代碼:(同例子Swiftmailer documentation

<?php 
    require_once 'lib/swift_required.php'; 

    $transport = Swift_SmtpTransport::newInstance('smtp.mydomain.org', 25) 
     ->setUsername('[email protected]') 
     ->setPassword('mypassword') 
     ; 

    $mailer = Swift_Mailer::newInstance($transport); 


    $logger = new Swift_Plugins_Loggers_EchoLogger(); 
    $mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger)); 

    $message = Swift_Message::newInstance('Wonderful Subject') 
     ->setFrom(array('[email protected]' => 'admin')) 
     ->setTo(array('[email protected]' => 'recipient')) 
     ->setBody('Here is the message itself') 
     ; 

    $result = $mailer->send($message); 
    echo $logger->dump(); 
?> 

下面是相關記錄信息:

... 
    ++ Swift_SmtpTransport started 
    ... 
    >> RCPT TO: <[email protected]> 
    << 550 5.1.1 <[email protected]> recipient rejected 
    !! Expected response code 250/251/252 but got code "550", with message "550 5.1.1 <[email protected]> recipient rejected " 
    >> RSET 
    << 250 2.0.0 OK 
    ++ Stopping Swift_SmtpTransport 
    >> QUIT 

回答

2

不是 「真正的」回答,但太長的評論框:

Is this a response from the gmail server

是的。

recipient rejected意味着,收件人(即您發送郵件的地址,合法@ gmail.com`)以某種方式被拒絕。

這可能有很多原因

  • 電子郵件地址不存在(再)(完全有可能)
  • 用戶郵箱已滿(完全有可能)
  • 該帳戶Gmail阻止(很可能)
  • 用戶設置了一個過濾器來顯式拒絕來自您的電子郵件(不確定這是否可以使用gmail完成,但它是技術上可行的)。
  • 您的郵件視爲垃圾郵件(不太可能,你可能會得到不同的信息)
  • ...許多人...

這有點不幸,Gmail無法提供更多的信息作爲對原因。我找不到Gmail的錯誤代碼的任何文件(550是一種通用的「失敗」代碼),通常這些消息進行排序的更詳細...

什麼你可以嘗試:

  • 使非常確保電子郵件存在並且有效。確保使用不同的Gmail地址(即您可以訪問的一個地址)。
  • 檢查,如果你使用的列入黑名單,例如:http://mxtoolbox.com/blacklists.aspx
  • 嘗試從smtp.mydomain.org發送郵件,例如使用命令行實用mail(如果是在UNIX系統中),如果這也不行,你知道問題在郵件服務器上,如果它工作正常,你知道問題出在Swift郵件程序。
+0

只是爲了增加黑名單的可能性:gmail只使用垃圾郵件黑名單,除非最近發生了變化。任何其他列表不應影響您的交付能力。但是,從第一手來講,這不是一個黑名單問題 - 他們發佈了針對該事件的特定代碼(5.7.1)。儘管我提出了你的回答,但是這裏所說的一切都是現貨。 – skrilled

+0

我發送給我的Gmail帳戶是我自己的Gmail帳戶,所以我知道它存在,未滿,未被阻止,並且沒有過濾器。這導致我認爲Gmail會考慮垃圾郵件。這看起來很奇怪,因爲我使用了最基本的Swiftmailer示例,並且它被最受歡迎的電子郵件服務之一阻止了。如果是這樣的話,這對Swiftmailer來說並不好。 – Sparebrain

+0

後續工作:我可以使用郵件工具發送郵件。我懷疑Swiftmailer存在問題。這對其他人來說很容易使用他們自己的Gmail地址進行復制/驗證。如果Gmail阻塞,這應該是一個更常見的報告問題。我懷疑這是我的Swiftmailer設置的其他內容? – Sparebrain