我正在尝试使用 smtp 协议使用 cakephp 发送邮件。
这是我的 email.php:
class EmailConfig {
public $smtp = array(
'transport' => 'Smtp',
'from' => array('account@mail.sk' => 'Me'),
'host' => 'ip_address',
'port' => 1234,
'timeout' => 30,
'username' => 'account',
'password' => 'password',
/* dont know what these parameters below are for */
'client' => null,
'log' => true,
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
);
这是我用于测试的功能(单击链接后,它应该发送一些虚拟邮件):
public function testSendEmail() {
$this->autoRender = false;
$email = new CakeEmail('smtp');
$email->from(array('account@mail.com' => 'Test'));
$email->to('me@gmail.com');
$email->subject('Test subject');
$email->send('Dummy post');
}
我认为我的代码还可以(尽管我没有尝试过,因为 gmail 在我们的办公室中受到限制,所以我无法使用我的 gmail 设置进行尝试)。单击链接后 ($this->Html->link('link', array('controller'=>'users', 'action'=>'send_mail'));) 没有任何反应(网站刷新)我做没有任何错误,甚至在 tmp/error.log 中也没有
我想我的端口不正确。(但您会想到任何其他原因,将不胜感激)
经过一番挖掘后,我找到了需要将其发送到的主机,我的问题是:
如何找到我的邮件服务 (Outlook 2007) 用于发送邮件的端口?
我尝试了什么:
http://www.authsmtp.com/outlook-2007/alternate-port.html,但自图片 2 以来的所有对话框都与图片不同。
还在命令行中尝试了 netstat -a ,但与我的 OUTLOOK 对应的两个端口都没有工作。
补充笔记:
- 我在本地主机上编写这个应用程序(xampp -> apache)
- 我在 php.ini 中添加了这个“extension=php_openssl.dll”行(它在一些教程中提出)并且没有发生任何变化(仍然没有错误,仍然没有邮件)
更新:
将函数的名称更改为“test_send_email”,现在它不会刷新,但在删除自动渲染并将 test_send_email.ctp 视图添加到我的 MVC 后,会显示此错误:
SMTP 超时。错误:发生内部错误。
所以我想我是对的,我没有正确的端口..