【问题标题】:Sent email appears in recipient's spam folder in cakePHP using gmail account?使用gmail帐户发送的电子邮件出现在cakePHP中收件人的垃圾邮件文件夹中?
【发布时间】:2012-09-26 19:34:21
【问题描述】:

我在我的一个项目中使用 cakephp。发送电子邮件我使用 cakeEmail。为此,我创建了一个用于发送电子邮件的 gmail 帐户(即用于从该帐户发送邮件的代码)。邮件发送有效,但发送的邮件出现在收件人的垃圾邮件文件夹中。
同样在 gmail 帐户中,邮件不会出现已发送邮件文件夹。

代码如下:

在 /app/Config/email.php 文件中是:

类 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();



    }

请告诉我应该怎么做才能让所有已发送的电子邮件出现在收件箱而不是垃圾邮件文件夹中。

谢谢

【问题讨论】:

  • 您是从 CLI(shell?)还是通过 APP 浏览器前端发送?

标签: email cakephp


【解决方案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")

【讨论】:

    【解决方案2】:

    很多原因会使您的电子邮件被视为垃圾邮件。

    • 也许 Gmail 无法将发件人(smtp 源/您的开发机器)检查为受信任的发件人。您是否尝试过将您的 php 脚本上传到另一台服务器(生产)然后从那里发送?

    • 您是否尝试过将消息内容/主题更改为不同于“找回密码”的内容?

    • 您是否尝试将相同的邮件发送给其他收件人?

    Gmail 使用很多规则来检查电子邮件是否为垃圾邮件,请查看此链接:https://webapps.stackexchange.com/questions/5773/how-gmail-and-other-mail-services-detects-a-mail-as-a-spam

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-02
      • 2017-08-23
      • 2015-09-01
      • 1970-01-01
      • 2011-01-29
      • 2019-08-25
      • 1970-01-01
      相关资源
      最近更新 更多