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 = ('abc@abc.com');
Yii::app()->mail->send($message);
}
在$message->addTo()
如果我传递了我的gmail ID,那么在gmail中我收到了邮件。
但如果我在$message->addTo()
传递我的雅虎或其他身份证,那么我就不会收到邮件,也不会显示任何错误。
答案 0 :(得分: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/