我想我会在这里写一个问题之前尝试找出是否可以通过cmd行发送邮件。所以我跟着these steps发了一封cmd给我自己的电子邮件和我的同事,我正在使用同一个应用程序。来自cmd行的消息以它应该出现的格式出现。
(内部应用程序,应该只向我的同事的OUTLOOK帐户发送邮件)
一切似乎都很好,所以我想我的cakePHP代码中有一个错误:
到目前为止我在邮件代码上的所有内容都是:
应用/配置/ email.php
public $smtp = array(
'transport' => 'Smtp',
'from' => array('from@test.sk'),
'host' => 'ip_address_of_my_host',
'port' => 25,
'timeout' => 30,
'username' => 'from@test.com',
'password' => 'password',
'client' => null,
'log' => true,
'charset' => 'utf-8',
'headerCharset' => 'utf-8',
);
UsersController.php(测试发送邮件功能)
public function test_send_email() {
$this->autoRender = false;
App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail('smtp');
$email->from(array('from@test.com' => 'APP TEST'));
$email->to('me@test.com');
$email->subject('Subject of testing');
$email->send('Message of testing');
}
加载5秒后,我得到: SMTP错误:504 5.7.4无法识别的身份验证类型
答案 0 :(得分:1)
<强>解决:强>
我想在EXCHANGE上不需要身份验证,所以我只是删除了密码参数并且工作正常。
在研究过程中我发现了这篇文章,所以下一步就是联系EXCHANGE管理员。
http://blogs.technet.com/b/exchange/archive/2006/12/28/3397620.aspx
答案 1 :(得分:0)
在端口25
上使用telnet时遇到同样的错误。更改为端口587
后,我可以使用经过身份验证的SMTP。