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   = ('abc@abc.com');
    Yii::app()->mail->send($message);
}

gmail idを$message->addTo()渡すと、gmail でメールを受け取りました。しかし、yahoo または他の ID を渡す$message->addTo()と、メールが届かず、エラーも表示されません。

4

1 に答える 1

2

電子メールが一部のアドレスに配信され、他のアドレスには配信されない場合、コードの問題ではない可能性があります。それはおそらくあなたのサーバーです。

メール配信は複雑です。ほぼすべてのエンドポイント (Gmail、Yahoo など) には、さまざまなスパム ルールがあります。直面する最大の問題は、送信元の IP アドレスを「安全」と認識させることです。

Yii の送信エージェントとして確立された SMTP サーバー (Gmail など) を使用して電子メールを送信できたことは幸運でした。

配信到達性に関するその他のリソースを次に示します。

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/

于 2011-12-14T12:32:44.143 に答える