使用CodeIgniter发送电子邮件时出错

Sco*_*ott 8 email freebsd smtp codeigniter

在发送电子邮件时,我收到了一堆这样的错误:

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
Run Code Online (Sandbox Code Playgroud)

我已按照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';
Run Code Online (Sandbox Code Playgroud)

看起来配置文件很好,而且正确(我已经检查了OVH的电子邮件配置文件).

任何解决方案?

Ste*_*n P 7

我也处于同样的情况。越来越:

消息: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';
Run Code Online (Sandbox Code Playgroud)

我在https://www.codeigniter.com/user_guide/libraries/email.html通过搜索 SSL 选项找到了这个解决方案。


pre*_*tch 5

如果您使用cpanel为您的网站smtp限制是问题,并导致此错误.

SMTP限制

此功能可防止用户绕过邮件服务器发送邮件,这是垃圾邮件发送者常用的做法.它只允许MTA,mailman和root连接到远程SMTP服务器.

此控件也可在"调整设置"中调整.

此设置已更新.

SMTP限制已禁用.

我有类似的问题,不得不禁用SMTP限制.之后一切都还好.


B. *_*sem 5

这是对我有用的答案

http://biostall.com/resolving-error-with-sending-emails-via-smtp-using-codeigniter/

请务必使用“\r\n”而不是“\r\n”

您也可以在配置文件中进行设置:

$config['newline'] = "\r\n";
$config['crlf'] = "\r\n";
Run Code Online (Sandbox Code Playgroud)