0

我正在尝试使用 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) 用于发送邮件的端口?

我尝试了什么:

  1. http://www.authsmtp.com/outlook-2007/alternate-port.html,但自图片 2 以来的所有对话框都与图片不同。

  2. 还在命令行中尝试了 netstat -a ,但与我的 OUTLOOK 对应的两个端口都没有工作。

补充笔记:

  1. 我在本地主机上编写这个应用程序(xampp -> apache)
  2. 我在 php.ini 中添加了这个“extension=php_openssl.dll”行(它在一些教程中提出)并且没有发生任何变化(仍然没有错误,仍然没有邮件)

更新:

将函数的名称更改为“test_send_email”,现在它不会刷新,但在删除自动渲染并将 test_send_email.ctp 视图添加到我的 MVC 后,会显示此错误:

SMTP 超时。错误:发生内部错误。

所以我想我是对的,我没有正确的端口..

4

1 回答 1

2

默认端口是 25,这里就是这种情况。

您可以使用 cmd 命令 telnet name_of_server 25 检查它

在 Outlook 2007 中,可以通过右键单击消息 -> 选项 -> 对话框中的下方是此消息的标题来找到服务器地址。

于 2013-02-11T09:22:40.650 回答