用户
 找回密码
 入住 CI 中国社区
搜索
查看: 10255|回复: 8
收起左侧

[HELP] Email类的问题

[复制链接]
发表于 2014-2-20 21:08:43 | 显示全部楼层 |阅读模式
30CI币
SOS。
我的服务器是nginx的。
使用CI的email类来发送邮件。

用QQ企业邮箱无法发送邮件,配置如下:
$config['protocol']  = 'smtp';
$config['smtp_host'] = 'smtp.exmail.qq.com';
$config['smtp_port'] = '465';
$config['smtp_user'] = 'xxx@xxx.com';
$config['smtp_pass'] = 'xxx';
$config['crlf']="\r\n";
$config['newline']="\r\n";
浏览器显示一直在缓冲,大概一分钟后返回的是nginx的错误。
查看nginx错误日志显示
“(10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond)”

使用163邮箱的未加密smtp则可以发送邮件,配置如下:
$config['protocol']  = 'smtp';
$config['smtp_host'] = 'smtp.163.com';
$config['smtp_port'] = '25';
$config['smtp_user'] = 'xxx@xxx.com';
$config['smtp_pass'] = 'xxx';

但使用163邮箱的ssl smtp(465端口)就又是发送邮件失败
但$this->email->send()又返回成功,打印$this->email->print_debugger()时候显示如下:
hello: The following SMTP error was encountered:
Failed to send AUTH LOGIN command. Error:
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.

请问有人遇到这样的问题吗?  该如何解决,我想用QQ企业邮箱。。。
折腾一天快哭了。。。


 楼主| 发表于 2014-2-20 23:33:30 | 显示全部楼层
另外,QQ邮箱如果使用25端口也是可以发送成功的。
$config['protocol']  = 'smtp';
$config['smtp_host'] = 'smtp.exmail.qq.com';
$config['smtp_port'] = '465';
$config['smtp_user'] = 'admin@wangtangyuan.com';
$config['smtp_pass'] = 'ty13316003671';
$config['crlf']      = "\r\n";
$config['newline']   = "\r\n";    //这还不能用单引号,单引号会导致nginx崩溃不知道为什么
回复

使用道具 举报

 楼主| 发表于 2014-2-20 23:35:48 | 显示全部楼层
PHP复制代码
 
$config['crlf']      = "\r\n";
$config['newline']   = "\r\n";   //是一个反斜杠! 上面被论坛自动转换成两个反斜杠了。。。=。=
 
复制代码
回复

使用道具 举报

发表于 2014-2-21 14:33:21 | 显示全部楼层
          $config['protocol'] = 'sendmail';
      $config['smtp_host'] = 'smtp.exmail.qq.com';
      $config['smtp_user'] = 'xxx';//这里写上你的163邮箱账户
      $config['smtp_pass'] = 'xxxx';//这里写上你的163邮箱密码
      $config['mailtype'] = 'html';
       $config['validate'] = true;
     $config['priority'] = 1;
     $config['crlf']  = "\\r\\n";
     $config['smtp_port'] = 465;
     $config['charset'] = 'utf-8';
    $config['wordwrap'] = TRUE;
这是我的配置,用阿帕奇可以发,还是很快的,不到1秒就收到了。
回复

使用道具 举报

发表于 2014-2-21 14:50:19 | 显示全部楼层
php要支持ssl才行吧
回复

使用道具 举报

 楼主| 发表于 2014-2-22 03:14:20 | 显示全部楼层
yr334 发表于 2014-2-21 14:50
php要支持ssl才行吧

我看我的phpinfo()里面已经支持openssl了啊?
回复

使用道具 举报

 楼主| 发表于 2014-2-22 03:17:29 | 显示全部楼层
deber 发表于 2014-2-21 14:33
$config['protocol'] = 'sendmail';
      $config['smtp_host'] = 'smtp.exmail.qq.com';
      $confi ...

按你说的,改成sendmail的protocol,
(PS:你的smtp跟smtp_user有冲突了吧,一个qq,一个163)
然后返回的错误如下:

Unable to open a socket to Sendmail. Please check settings.
Unable to send email using PHP Sendmail.  Your server might not be configured to send mail using this method.
回复

使用道具 举报

发表于 2017-11-16 16:44:29 | 显示全部楼层
楼主请问你这个解决了吗,我也出现这样的问题一直没办法解决
回复

使用道具 举报

发表于 2017-11-17 14:42:19 | 显示全部楼层
今天刚做了邮件发送,使用的是个人QQ邮箱下面说下自己的配置


1,qq邮箱开启 IMAP/SMTP ,记下密钥,待会要用到


2,我的开发环境,windows7  WAMP64 ,另外  php.ini 要开启 openssl(必须)支持 和 sockets(没有试过是不是必须开启);


3,下面是我的[CI email类 使用 QQ邮箱发送邮件]配置


PHP复制代码
 
 
$this->load->library('email');
$mconfig['protocol'] = 'smtp'; // 使用smtp协议
$mconfig['smtp_host'] = 'smtp.qq.com'; // smtp主机
$mconfig['smtp_port'] = 465; // smtp端口
$mconfig['smtp_user'] = '你刚才配置的QQ号'; // smtp用户
$mconfig['smtp_pass'] = '你刚才记下的密钥'; // 密码
$mconfig['smtp_crypto'] = 'ssl';//465端口使用ssl
$mconfig['crlf'] = "\r\n"; // 设置换行符
$mconfig['newline'] = "\r\n"; // 设置换行符
$this->email->initialize($mconfig);
$this->email->from($mconfig['smtp_user'], '在线询价');
//$this->email->cc($this->post('mail_user'));//抄送
$this->email->to('你的接收邮箱');
$this->email->subject('CI阳澄湖');
$this->email->message('CI社区京东大闸蟹监控系统卡券发货已经同步成功运营');
$this->email->send(); //这里你可以判断下 然后打印一下发送结果
 
 
 
复制代码


4,下面是测试的一些截图,希望对新手有帮助











回复

使用道具 举报

本版积分规则