[英]cakephp 2.0 smtp email
我正在尝试使用CakePhp 2.0发送电子邮件。 在我的控制器中,我使用以下代码(我知道这很好,我从菜谱中获取了它):
App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail("myConfig");
$email->from(array('from@example.com' => 'From Example'));
$email->to($to);
$email->subject($msgtitle);
$ok = $email->send($content);
在app/config/email.php
我有以下配置:
<?php
class EmailConfig {
public $myConfig = array(
'host' => 'mail.myServer.com',
'port' => 587,
'username' => 'mYaccount',
'password' => 'secret',
'transport' => 'Smtp'
);
}
?>
问题是服务器回答:
SMTP Error: 530 5.7.0 Must issue a STARTTLS command first.
帐户名正确,密码正确。 该配置在将其加载到雷鸟中时起作用,与smtp服务器的连接设置为:
服务器名称:mail.myServer.com
港口:587
连接安全性:STARTTLS
身份验证:普通密码
用户名:mYaccount
您确定您的SMTP支持tls吗? 尝试发送ehlo命令:
telnet 1.2.3.4 25
ehlo testing
您应该看到类似以下内容:
250-STARTTLS
在列表中。
如果看到它,则很可能未启用它。 您将需要启用它。 如果看不到它,则需要添加它。
以下代码使用CakePHP SMTP Email通过GoDaddy服务器为我工作:
config文件夹中的Email.php文件-CakePHP 2.4 MVC版本:
// for Live Server GoDaddy.com domain
public $smtp = array(
'transport' => 'Smtp',
'host' => 'ssl://smtpout.asia.secureserver.net', <-- important
'port' => 465, <-- important
#'timeout' => 30,
'username' => 'no-reply@godaddy-domain.com',
'password' => 'password',
#'tls' => false,
#'log' => false,
'charset' => 'utf-8',
'headerCharset' => 'utf-8',
);
这是下面的控制器文件代码:
// Controller Code to Send Actual Email
// email configuration
$Email = new CakeEmail('smtp');
$Email->from(array('no-reply@godaddy-domain.com' => 'App Name'))
->sender('no-reply@godaddy-domain.com', 'App Name')
->to(array($email))
->bcc(array('xyz@xyz.com'))
->subject('Test Email from GoDaddy')
->emailFormat('both')
->send($hash.'<br><strong>My</strong> message 45 قبل الميلاد، مما يجعله أكثر من');
希望能帮助到你 !
谢谢
public $smtp = array(
.................,
'tls' => true
);
尝试以下操作:
<?php
class EmailConfig {
public $myConfig = array(
'host' => 'ssl://mail.myServer.com',
'port' => 465,
'username' => 'mYaccount',
'password' => 'secret',
'transport' => 'Smtp'
);
}
?>
确保你的
php_openssl.dll
扩展程序正在运行。
您可以在php.ini
文件中检查它。
如果您使用的是XAMPP,则php.ini应该位于C:\\xampp\\php
php.ini:
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
从CakePHP Cookbook:
您可以配置SSL SMTP服务器,例如GMail。 为此,请将“ ssl://”放在主机的前缀处,并相应地配置端口值。 例:
class EmailConfig { public $gmail = array( 'host' => 'ssl://smtp.gmail.com', (...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.