首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SMTP邮件未发送-代码点火器电子邮件库

SMTP邮件未发送-代码点火器电子邮件库
EN

Stack Overflow用户
提问于 2018-06-29 12:42:49
回答 3查看 4.9K关注 0票数 2

我在通过SMTP协议发送邮件时遇到了问题。

Welcome.php

代码语言:javascript
运行
复制
$this->load->library('email');

$config = array();
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.zoho.com';
$config['smtp_user'] = 'support@domain.com';
$config['smtp_pass'] = '**************';
$config['smtp_port'] = 465;
$config["smtp_crypto"] = "ssl";

$this->email->initialize($config);

$this->email->set_newline("\r\n");
$this->email->from('support@domain.com', 'Support name'); // change it to yours
$this->email->to($to);// change it to yours
$this->email->subject($subject);
$this->email->message($message);

    if($this->email->send())
    {
      echo "Success! - An email has been sent to ".$to;
    }
    else
    { 
      show_error($this->email->print_debugger());
      return false;
    }
}

这里是输出错误:

代码语言:javascript
运行
复制
An Error Was Encountered
220 mx.zohomail.com SMTP Server ready June 29, 2018 5:16:40 AM PDT 

hello: 

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.
Date: Fri, 29 Jun 2018 12:16:40 +0000
From: "Support Name" <support@domain.com>
Return-Path: <support@domain.com>
To: recipent@gmail.com
Subject: =?ISO-8859-1?Q?=43=6F=70=79=20=61=6C=6C=20=74=68=65?=
Reply-To: <support@domain.com>
User-Agent: CodeIgniter
X-Sender: support@domain.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <5b36232840595@domain.com>
Mime-Version: 1.0


Content-Type: multipart/alternative; boundary="B_ALT_5b3623284061c"

This is a multi-part message in MIME format.
Your email application may not support this format.

--B_ALT_5b3623284061c
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

Some


--B_ALT_5b3623284061c
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Some Email Description=0A=0A Some Email Description

--B_ALT_5b3623284061c--

注意:脚本在本地主机以及多个其他主机上运行良好,但在VPS主机上没有工作。

以下是要记住的事情:

  1. 代码很好(在不同的主机中尝试过,并且可以工作)
  2. $config['protocol'] = "smtp";更改为$config['protocol'] = "sendmail";是有效的。但我只想通过SMTP协议发送邮件。
  3. 使用Zoho协议(smtp.zoho.com)
  4. 尝试过,谷歌SMTP,仍然没有发送。(使用PHPMailer库对凭据进行测试。它正在对付它们。)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-02 09:53:12

解决方案:,问题是修复了!罪魁祸首是有效主机名&反向DNS

详细信息:由于配置错误,在7 - 10 secs周围响应。根据文档,如果我们不指定smtp_timeout,它将默认为5 sec。因此,我将smtp_timeout从默认的5 sec更改为10 sec--它可以工作

找出问题所在后,发现SMTP响应缓慢。没有有效的主机名,反向DNS补充道。所以补充说。现在它正像预期的那样工作。现在,我删除了smtp_timeout字段。现在起作用了。

票数 1
EN

Stack Overflow用户

发布于 2018-06-30 03:44:36

我觉得这个代码工作得很好

代码语言:javascript
运行
复制
$Config = [
  'protocol'  => 'smtp', 
  'smtp_host' => 'smtp.zoho.com', 
  'smtp_port' =>  465, 
  'smtp_user' => 'support@domain.com', 
  'smtp_pass' => '**************', 
  'mailtype'  => 'html', 
  'charset'   => 'utf-8'
];
$this->load->library('email',$config);
$this->email->set_newline("\r\n");
$this->email->from('support@domain.com', 'Support name'); // change it to yours
$this->email->to($to);// change it to yours
$this->email->subject($subject);
$this->email->message($message);
if($this->email->send()){
   echo "Success! - An email has been sent to ".$to;
}
else{ 
   show_error($this->email->print_debugger());
   return false;
}
票数 2
EN

Stack Overflow用户

发布于 2022-07-12 15:21:45

通过SMTP发送电子邮件可能是非常棘手的,因为现在的安全检查。

核实是否:

  1. 在您的服务器上有rDNS,并且它与您的服务器IP匹配
  2. 禁用用于发送电子邮件的电子邮件上的2步auth
  3. 在用于发送电子邮件的电子邮件上启用了IMAP和

更改CI设置如下:

代码语言:javascript
运行
复制
    //Settings for CI
    $config['protocol'] = 'smtp';  
    $config['smtp_host'] = 'ssl://smtp.zoho.com'; 
    $config['smtp_user'] = 'anyemail@server.com'; 
    $config['smtp_pass'] = '***********';
    $config['smtp_port'] = '465';
    $config['smtp_crypto'] = 'ssl';

    //Google Settings for CI
    $config['protocol'] = 'ssmtp';  
    $config['smtp_host'] = 'ssl://ssmtp.gmail.com'; 
    $config['smtp_user'] = 'anyemail@server.com'; 
    $config['smtp_pass'] = '***********';
    $config['smtp_port'] = '465';
    $config['smtp_crypto'] = 'ssl';

    //general settings
    $config['_smtp_auth'] = TRUE; //important
    $config['smtp_timeout'] = 30;
    $config['charset'] = 'utf-8';
    $config['mailtype'] = 'html';
    //optional
    $config['wrapchars'] = 76;
    $config['wordwrap'] = TRUE;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51102050

复制
相关文章

相似问题

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