发送电子邮件时,我收到了一堆此类错误:
A PHP Error was encountered
Severity: Notice
Message: fwrite(): send of 12 bytes failed with errno=32 Broken pipe
Filename: libraries/Email.php
Line Number: 1846
A PHP Error was encountered
Severity: Notice
Message: fwrite(): send of 39 bytes failed with errno=32 Broken pipe
Filename: libraries/Email.php
Line Number: 1846
A PHP Error was encountered
Severity: Notice
Message: fwrite(): send of 31 bytes failed with errno=32 Broken pipe
Filename: libraries/Email.php
Line Number: 1846
我已按照CodeIgniter用户指南配置SMTP:
$config['protocol']='smtp';
$config['smtp_host']='ssl0.ovh.net';
$config['smtp_port']='465';
$config['smtp_timeout']='10';
$config['smtp_user']='postmaster%example.com';
$config['smtp_pass']='password';
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['newline'] = "\r\n";
$config['useragent'] = 'Project';
似乎配置文件很好,并且正确(我已经检查了OVH的电子邮件配置文件)。
任何解决方案?
答案 0 :(得分:5)
如果您在网站上使用cpanel,则smtp限制有问题并导致此错误。
SMTP限制
此功能可防止用户绕过邮件服务器发送 邮件,垃圾邮件发送者常用的做法。它只允许MTA, mailman和root连接到远程SMTP服务器。
此控件也可在调整设置中调整。
此设置已更新。
禁用SMTP限制。
我遇到了类似的问题,不得不禁用SMTP限制。 之后一切都还好。
答案 1 :(得分:3)
我也处于同样的境地。得到了:
消息:fwrite():SSL:管道损坏< / p>< p>文件名:libraries / Email.php< / p>< p>行号: 2250&安培;
真正有所作为的变化是' smtp_crypto'配置选项设置为' ssl'
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://example.com';
$config['smtp_crypto'] = 'ssl';
$config['smtp_port'] = '465';
$config['smtp_user'] = 'user@example.com';
$config['smtp_pass'] = 'password';
$config['mailtype'] = 'html';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = 'TRUE';
我通过搜索SSL选项在https://www.codeigniter.com/user_guide/libraries/email.html找到了此解决方案。
答案 2 :(得分:2)
这是对我有用的答案
http://biostall.com/resolving-error-with-sending-emails-via-smtp-using-codeigniter/
请务必使用“\ r \ n”而不是“\ r \ n”
您也可以在配置文件中设置:
$config['newline'] = "\r\n";
$config['crlf'] = "\r\n";
答案 3 :(得分:2)
这里的问题相同......但对我来说有用的是这些配置:
$config['protocol'] = 'smtp';
$config['smtp_host'] = XXX;
$config['smtp_user'] = XXX;
$config['smtp_port'] = 25; // was 465
$config['smtp_pass'] = XXX;
$config['newline'] = "\r\n";
消息停止了。 :d
答案 4 :(得分:1)
就CI而言,您的电子邮件配置数组存在很多问题,可能会导致此错误。
如果您使用的是本地开发环境,请尝试使用大写字母将“smtp”的大小写更改为“SMTP”。
如果您使用的是实时服务器,请尝试将其更改为小型大写字母。
总而言之,使用$config['protocol'] = 'smtp'
大写有时会有所帮助。
答案 5 :(得分:0)
使用smpt_port:25,它对我有用
答案 6 :(得分:0)
我尝试这个,对我来说很有用
$config['protocol'] = 'smtp';
$config['smtp_crypto'] = 'tls';
$config['smtp_host'] = 'smtp.gmail.com';
$config['smtp_port'] = '587';