我正在使用cakephp进行我的一个项目。发送电子邮件我正在使用cakeEmail。为此,我创建了一个用于发送电子邮件的gmail帐户(即用于从该帐户发送邮件的代码)。邮件发送工作但发送邮件显示收件人的垃圾邮件文件夹。
另外在gmail帐户中,邮件不会出现发送邮件文件夹。
代码如下:
在/app/Config/email.php文件中:
class EmailConfig {
public $gmail = array(
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'username@gmail.com',
'password' => 'password',
'transport' => 'Smtp'
);
}
我的控制器文件中用于密码恢复的代码是:
公共职能_sendemail($ user_data,$ temporary_password){
$email = new CakeEmail();
$email->config('gmail');
$email->template('welcome', 'password_recovery_email'); //template
$email->emailFormat('html');
$email->viewVars(array(
'temporary_password'=>$temporary_password,
'user_data'=>$user_data
));
$email->from(array('username@gmail.com' => 'Password Recovery'));
$email->to($user_data['User']['email_address']);
$email->subject('password recovery email');
$result=$email->send();
}
请告诉我,如何让所有已发送的电子邮件显示在收件箱而不是垃圾邮件文件夹中。
由于
答案 0 :(得分:2)
很多原因可能会使您的电子邮件被视为垃圾邮件。
也许Gmail无法将发件人(smtp源/您的开发计算机)检查为可信发件人。您是否尝试将php脚本上传到另一台服务器(生产),然后从那里发送?
您是否尝试将邮件内容/主题更改为与“恢复密码”不同的内容?
您是否尝试过向其他收件人发送相同的邮件?
Gmail使用大量规则检查电子邮件是否为垃圾邮件,请查看以下链接:https://webapps.stackexchange.com/questions/5773/how-gmail-and-other-mail-services-detects-a-mail-as-a-spam
答案 1 :(得分:-1)
尝试使用此代码而不是cakephp的方法:
$subject = "Your Email Subject";
$to = "Recipient's Email Address";
$from = "Your Email Address";
$additional_headers = "From: $from\r\n";
$additional_headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$additional_headers .= "MIME-Version: 1.0\r\n";
$additional_headers .= "Return-Path: $from\r\n";
$additional_headers .= "X-Priority: 3\r\n";
$additional_headers .= "X-Mailer: PHP\r\n";
$message = "Your Email Body";
mail($to, $subject, $message, $additional_headers, "-f $from")