当前位置: 首页 > 知识库问答 >
问题:

CodeIgniter:SMTP邮件不工作

邓崇凛
2023-03-14

我正在尝试设置一个联系人表单,但我正在努力使它与配置项中的SMTP配置一起工作。不过,我已经成功地尝试了基本的'mail'配置。

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

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

事实上,如果我选择:

协议=>“邮件”

消息顺利传递。php mail()函数也使用托管提供程序SMTP,但它只是将它交给服务器,并忘记了它。

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

协议=>'SMTP'

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

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

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

共有1个答案

何睿范
2023-03-14

有些报告说配置项有单引号时出现问题:

$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或其他类似的方式)来验证协议是否正确。

 类似资料:
  • 我已经配置了php.ini和sendmail.iniXAMPP发送电子邮件和它的工作罚款。现在,当我改变PHP中的代码使用SMTP它不工作...它使用相同的主机,相同的smtpSecurity,相同的端口,相同的电子邮件作为XAMPP和它不工作... 和我的php代码 错误:服务器-

  • https://github.com/camunda/camunda-bpm-mail/tree/master/examples/print-service

  • 我正在使用spring Boot从java发送HTML电子邮件。电子邮件包括签名与我们公司的形象标志。它工作得很好。在Gmail上。但在MacOS应用程序电子邮件中,徽标是作为附件发送的,而不是内联的。 代码的非相关部分替换为...

  • 概述 在Java中发送邮件主要品依靠javax.mail包,但是由于使用比较繁琐,因此Hutool针对其做了封装。由于依赖第三方包,因此将此工具类归类到extra模块中。 使用 引入依赖 Hutool对所有第三方都是可选依赖,因此在使用MailUtil时需要自行引入第三方依赖。 <dependency> <groupId>javax.mail</groupId> <artifact

  • 在我的Laravel应用程序中,我需要定期使用Guzzle将数据发送到API。 API使用承载令牌进行身份验证,并请求和接受原始JSON。为了进行测试,我使用Postman访问了API,一切都工作得很好。

  • 问题内容: 几天前使用时,它已经正常工作了。 但是现在不起作用了。而且我不知道问题出在哪里。 它显示“邮件已发送”。 我没有碰过Apache或这段代码中的任何内容。我已经在空PHP文件中测试了代码,结果相同。如何调试此问题? 问题答案: 可能是电子邮件发送正常,但被垃圾邮件过滤器捕获了吗?如果可以的话,请允许我交叉发表自己的看法: 一些要点(假设mail()返回true,并且错误日志中没有错误):