2011-12-14 62 views
1
public function mailsend($name, $contact_no, $email,$website,$content,$subject,$address) 
{ 
    $message  = new YiiMailMessage; 
    $message->view = 'viewfilenm'; 
    $message->setBody(array(), 'text/html'); 
    $body   = $message->message->getBody(); 
    /****** preg_replace :Perform a regular expression search and replace ******/ 
    $body   = preg_replace('/\[FNAME]/',$name,$body); 
    $body   = preg_replace('/\[CONTENT]/',$content,$body); 
    $find   = array("[CONTACT_NO]"=>$contact_no,"[FNAME]"=>$name,"[EMAIL]"=>$email,"[ADDRESS]"=>$address); 
    /****** strtr :Translate characters or replace substrings ******/ 
    $newstr   = strtr($content, $find); 
    $body   = str_replace($content,$newstr,$body); 
    $body   = preg_replace('/\[CONTACT_NO]/',$contact_no,$body); 
    $body   = preg_replace('/\[EMAIL]/',$email,$body); 
    $body   = preg_replace('/\[SUBJECT]/',$subject,$body); 
    $body   = preg_replace('/\[WEBSITE]/',$website,$body); 
    $message->message->setBody($body, 'text/html'); 
    $message->subject = $subject; 
    $message->addTo($email); 
    $message->from = ('[email protected]'); 
    Yii::app()->mail->send($message); 
} 

in $message->addTo()如果我通過我的Gmail身份證然後在Gmail中我收到了郵件。 但如果我通過我的雅虎或其他身份證$message->addTo()那麼我不會收到郵件,也不會顯示錯誤。從yii發送郵件

+0

你有沒有在雅虎其他賬戶中檢查你的垃圾郵件文件夾? – Arfeen 2011-12-14 10:05:31

+0

你有時在收件箱和某些時候進入垃圾郵件 – User1988 2011-12-14 11:28:41

回答

2

如果電子郵件遞送到一些地址,但不是其他人,它可能不是您的代碼問題。這可能是你的服務器。

電子郵件傳遞很複雜。幾乎每個終端(Gmail,Yahoo等)都有不同的垃圾郵件規則。你要面對的最大問題是讓你發送的IP地址被識別爲「安全」。

我已經有幸使用已建立的SMTP服務器(如Gmail)作爲我在Yii的發送代理髮送電子郵件。

這裏有一個關於產能的一些其他資源:

http://www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some-email-through-code.html http://www.engineyard.com/blog/2009/how-to-ensure-your-email-gets-delivered/