【发布时间】:2011-12-14 22:12:00
【问题描述】:
在我将我的 CakePHP 应用程序切换为使用 SMTP 发送电子邮件后(使用电子邮件组件)所有发送的电子邮件现在都没有主题了。
他们以前总是有一个主题,而现在其他一切都有效,只是没有主题。我联系了我正在使用的 smtp 服务器 (SendGrid) 的支持人员,他们向我保证电子邮件中不包含任何主题标头。
CakePHP 默认使用_mail() 函数,使用smpt 时使用_smtp() 函数。
我查看了代码,我可以看到 _mail 函数在哪里使用了主题,但是我没有看到 _smtp 或 _smtpSend 在任何地方使用 $this->subject。我错过了什么吗?
我需要做什么才能让主题发挥作用?
更新 添加代码:
这就是我从控制器发送电子邮件的方式:
$this->Email->to = $data['Order']['user_email'];
$this->Email->subject = 'Your Order Has Shipped';
$this->Email->template = 'order_shipped';
$this->Email->layout = 'sussex';
$this->Email->sendAs = 'html';
$this->Email->send();
Email 组件只是标准的 Cake 1.3 Email 组件,我在send() 函数的开头添加了这段代码:
$this->smtpOptions = array(
'port'=>'587',
'timeout'=>'30',
'host' => 'smtp.sendgrid.net',
'username'=>'my_user',
'password'=>'*******',
'client' => 'www.example.com'
);
$this->delivery = 'smtp';
【问题讨论】:
-
你能添加发送电子邮件的代码吗?仅供参考 cakephp 在电子邮件组件的 _createHeader 方法中为 smtp 添加主题。
-
@Shrey Gupta 电子邮件组件中有很多代码,你想看哪一部分....或者只是我发送电子邮件的控制器中的部分?
-
您的代码仅用于发送电子邮件,它使用电子邮件组件。
-
@Shrey Gupta 我已经添加了代码。
标签: email cakephp smtp cakephp-1.3