首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >代码点火器: SMTP邮件无法工作

代码点火器: SMTP邮件无法工作
EN

Stack Overflow用户
提问于 2013-01-24 19:05:13
回答 1查看 24.2K关注 0票数 1

我正在尝试设置一个联系人表单,并且我很难让它与CI中的SMTP配置一起工作。然而,我已经成功地尝试了基本的'mail‘配置。

简单地说,我正在用以下简单的代码进行测试:

代码语言:javascript
运行
复制
    $config = array(
        'protocol' => 'smtp',
        'smtp_host' => 'smtp.1and1.es',
        'smtp_port' => 25,
        'smtp_user' => 'user@mysite.com', 
        'smtp_pass' => '********',
        'mailtype'  => 'text',
        'charset'   => 'utf-8',
        'wordwrap'  => true,
        'wrapchars' => 50            
    );

    $this->load->library('email');
    $this->email->initialize($config);

    $this->email->from('my_real_email_address@gmail.com');
    $this->email->to('my_real_email_address@gmail.com');
    $this->email->reply_to('my_real_email_address@gmail.com', 'John Doe');
    $this->email->subject('Message sent from the contact form in website');
    $this->email->message('Body of message...');

    if ($this->email->send()) {
            return true;
    }
    echo '<!--' . print_r($this->email->print_debugger(), true) . '-->'; 
    return false;

我刚刚问了我的主机提供商,所有的SMTP配置都是正确的。他们还检查了我的电子邮件帐户是否正常工作。

事实上,如果我选择:

协议=> 'mail'

信息是毫无问题地传递的。AFAIK -- php mail()函数也使用托管提供商SMTP,但它只是将其交给服务器并将其遗忘。

相反,我想使用SMTP身份验证,因为它担心电子邮件的发送。但只有通过改变

协议=> 'smtp'

当我发送表单时,有大量的处理时间,最后得到以下调试消息:

代码语言:javascript
运行
复制
220 smtp.1and1.es (mreu2) Welcome to Nemesis ESMTP server

hello:  The following SMTP error was encountered:
Failed to send AUTH LOGIN command. Error: 421 smtp.1and1.es connection timed out

from:  The following SMTP error was encountered:
to:  The following SMTP error was encountered: 
data:  The following SMTP error was encountered:  

The following SMTP error was encountered: 
Unable to send email using PHP SMTP.  Your server might not be configured to send mail using this method.
User-Agent: CodeIgniter
Date: Thu, 24 Jan 2013 18:51:31 +0100
From: <my_real_email_address@gmail.com>
Return-Path: <my_real_email_address@gmail.com>
To: my_real_email_address@gmail.com
Reply-To: "John Doe" <my_real_email_address@gmail.com>
Subject: =?utf-8?Q?Message_sent_from_the_contact_form_in_website?=
X-Sender: my_real_email_address@gmail.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <510174a33158d@gmail.com>
Mime-Version: 1.0


Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Body of message...

这一错误的原因可能是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-24 19:19:30

有些人报告说,配置项有单引号有问题:

代码语言:javascript
运行
复制
$config['crlf'] = '\r\n';      //should be "\r\n"
$config['newline'] = '\r\n';   //should be "\r\n"

我很确定protocol => mail不使用您的提供商--它将直接从您的服务器发送电子邮件。

如果不是单引号问题,可能是凭据、防火墙或连接要求不正确的问题(例如,如果您的电子邮件提供商需要TLS/SSL)。

尝试连接到邮件服务器,并与另一个客户端发送电子邮件(您可以使用telnet:http://www.wikihow.com/Send-Email-Using-Telnet、thunderbird或somesuch)来验证协议是否正确。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14508815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档