Codeigniter:SMTP 邮件不起作用

Codeigniter: SMTP mail not working(Codeigniter:SMTP 邮件不起作用)
本文介绍了Codeigniter:SMTP 邮件不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试设置一个联系表单,但我正在努力让它与 CI 中的 SMTP 配置一起使用.不过,我已经成功尝试了基本的邮件"配置.

I'm trying to set up a contact form, and I'm struggling to get it working with the SMTP configuration in CI. However I've successfully tried with the basic 'mail' config.

简而言之,我正在使用以下简单代码进行测试:

To cut it short, I'm doing my tests with this simple code:

    $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 配置都是正确的.他们还检查了我的电子邮件帐户是否正常工作.

I've just asked my hosting provider and all the SMTP config is correct. They've also checked my e-mail account is working properly.

事实上,如果我选择:

protocol => '邮件'

消息传递没有问题.AFAIK php mail() 函数也使用托管服务提供商 SMTP,但它只是将它交给服务器并忘记它.

the message is delivered without problems. AFAIK the php mail() function also uses the hosting provider SMTP but it simply hands it over to the server and forgets it.

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

Instead I'd like to use SMTP authentication, which worries about the dispatch of the e-mail. But only by changing

协议 => 'smtp'

当我发送表单时,处理时间很长,我终于收到了这条调试消息:

when I send the form there's a lot of processing time and I finally get this debugging message:

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...

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

What might be the reason of this error?

推荐答案

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

Some have reported having an issue with a config item having single quotes:

$config['crlf'] = '
';      //should be "
"
$config['newline'] = '
';   //should be "
"

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

I'm pretty certain protocol => mail does not use your provider -- it will send the email directly from your server.

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

If it's not the single quote issue, it might be an issue with incorrect credentials, firewall or connection requirement (say if your email provider requires TLS/SSL).

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

Try connecting to the mail server and send an email with another client (you could use telnet: http://www.wikihow.com/Send-Email-Using-Telnet or thunderbird or somesuch) to verify the protocols are correct.

这篇关于Codeigniter:SMTP 邮件不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
trim function is giving unexpected values php(Trim函数提供了意外的值php)
Basic PDO connection to MySQL(到MySQL的基本PDO连接)
PHP number_format returns 1.00(Php number_Format返回1.00)