CakePHP电子邮件从SMTP上的地址更改

时间:2017-11-16 14:16:32

标签: email cakephp-2.x

我将此电子邮件配置通过我们的Google Apps企业帐户通过SMTP发送。

class EmailConfig {
    public $default = array(
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'username' => 'myemail@mygmaildomain.com',
        'password' => 'secret_password',
        'transport' => 'Smtp'
    );
}

当我发送电子邮件时:

$email = new CakeEmail('default');
$email->from('no-reply@mygmaildomain.com', 'My App');
$email->to(array('recipient@mygmaildomain.com' => 'Recipient Name'));
$email->subject('Test Email');
$email->emailFormat('html');
$email->send();

电子邮件已发送,但它会发送来自:myemail@mygmaildomain.com而不是no-reply@mygmaildomain.com的邮件。

我需要使用其他设置还是不可能?

编辑:

我已尝试过以下评论中提供的解决方案,但仍然没有让电子邮件来自no-reply

1 个答案:

答案 0 :(得分:1)

使用Google的SMTP服务器时,会忽略$email->from('no-reply@mygmaildomain.com', 'My App'); //Ignored by Gmail 标头。

AmazonS3ClientBuilder.defaultClient();

来自DigitalOcean的教程How to use Google's SMTP server

  

注意: Google会自动将您通过其SMTP服务器发送的任何电子邮件的发件人重新设置为Gmail或Google Apps电子邮件帐户设置中的默认发送邮件地址作为电子邮件地址。您需要了解这种细微差别,因为它会影响您的电子邮件的呈现,从收件人的角度来看,它也可能会影响某些程序的回复设置。

要实现此目的,您必须在Google Apps控制台中修改邮件设置:

  

解决方法:在您的Google电子邮件设置中,转到帐户标签/部分,然后制作“默认”除Gmail / Google Apps帐户以外的帐户。这将导致Google的SMTP服务器重写“发件人”字段,其中包含您启用的任何地址作为默认发送邮件地址。