отправка почты из yii - PullRequest
       43

отправка почты из yii

1 голос
/ 14 декабря 2011
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, то в gmail я получаю почту.но если я передаю свой Yahoo или другой идентификатор в $message->addTo(), то я не получаю письмо, и никакие ошибки также не отображаются.

1 Ответ

2 голосов
/ 14 декабря 2011

Если электронная почта доставляется на некоторые адреса, но не на другие, это, вероятно, не проблема с вашим кодом.Вероятно, это ваш сервер.

Доставка электронной почты сложна.Почти каждая конечная точка (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/

...