我已经使用Mandrill for SMTP,以下代码在localhost中为我工作得很好。但是,当我在偏远地区托管我的网站时,相同的代码无效。
显示错误
服务器535不接受Smtp-> gt错误密码。验证数据不正确。
这是我的代码。请帮帮我。
public function actionCreate()
{
$model=new Contacts;
if(isset($_POST['Contacts']))
{
$model->attributes=$_POST['Contacts'];
Yii::import('application.extensions.phpmailer.JPhpMailer');
$mail = new JPhpMailer;
$mail->IsSMTP();
$mail->Host = 'smtp.mandrillapp.com';
$mail->Port ='587';
$mail->SMTPAuth = true;
$mail->SMTPSecure="tls";
$mail->Username = 'xxx@gmail.com';
$mail->SMTPDebug = 1;
$mail->SMTPKeepAlive =true;
$mail->Password = 'tshb-mA19EdIvdQf2mO8KA';
$mail->SetFrom($_POST['Contacts']['email'], $_POST['Contacts']['email']);
$mail->Subject = 'New Mail Receiverd';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
$mail->MsgHTML("DASDSAD");
$msgBody="<div><ul>";
foreach($model->attributes as $key=>$value)
{
$msgBody.="<li>".$key." - ".$value."</li>";
}
$msgBody.="</ul></div>";
$mail->MsgHTML($msgBody);
$mail->AddAddress('xxx@gmail.com', 'xxx');
$ret=$mail->Send();
if($model->save())
print "<script type=\"text/javascript\">";
print "alert('Thank you for contacting us.')";
print "</script>";
}
$this->render('create',array(
'model'=>$model,
));
}
答案 0 :(得分:2)
您会看到这种情况的最常见原因是您使用的是重定向SMTP连接的共享托管服务提供商,或者不允许外部SMTP连接。
因此,您可能无法连接到无法识别Mandrill凭据的本地邮件服务器,而是连接到smtp.mandrillapp.com。我们建议您使用common troubleshooting steps in our KB here,以确保您按预期方式进行连接。
如果您仍然遇到问题,也可以点击Mandrill帐户左下方的“支持”按钮直接与支持小组联系。