我正在尝试使用CodeIgniter的电子邮件库发送电子邮件。这是我写的代码。
$email_config = array(
'protocol' => 'smtp',
'smtp_host' => ' ssl://smtp.gmail.com',
'smtp_port' => '465',
'smtp_user' => 'shamir.towsif@gmail.com',
'smtp_pass' => '**********',
'mailtype' => 'html',
'newline' => "\r\n",
'charset' => 'iso-8859-1',
"wordwrap" => true
);
$this->CI->load->library('email', $email_config);
$this->CI->email->from('shamir.towsif@gmail.com', 'invoice');
$this->CI->email->to('shamir.towsif@gmail.com', "User");
$this->CI->email->subject('Invoice');
$this->CI->email->message('Test');
$this->CI->email->send();
echo $this->CI->email->print_debugger();
错误:这是我收到的错误。
遇到以下SMTP错误:0 php_network_getaddresses: getaddrinfo失败:名称或服务未知无法发送数据: AUTH LOGIN无法发送AUTH LOGIN命令。错误:无法发送 data:MAIL FROM:from:遇到以下SMTP错误: 无法发送数据:RCPT TO:to:以下SMTP错误 遇到:无法发送数据:DATA数据:以下SMTP 遇到错误:无法发送数据:User-Agent:CodeIgniter 日期:2015年6月21日星期日05:52:56 +0600来自:“invoice”返程路径:至: shamir.towsif@gmail.com主题:=?iso-8859-1?Q?发票?=回复: “shamir.towsif@gmail.com”X-Sender:shamir.towsif@gmail.com X-Mailer: CodeIgniter X-Priority:3(正常)消息ID: < 5585fcd8c63f7@gmail.com> Mime版本:1.0内容类型: 多部分/替代; boundary =“B_ALT_5585fcd8c643b”这是一个 MIME格式的多部分消息。您的电子邮件申请可能不会 支持这种格式。 --B_ALT_5585fcd8c643b Content-Type:text / plain; charset = iso-8859-1 Content-Transfer-Encoding:8bit测试 --B_ALT_5585fcd8c643b Content-Type:text / html; charset = iso-8859-1 Content-Transfer-Encoding:quoted-printable Test --B_ALT_5585fcd8c643b--无法发送数据:。
遇到以下SMTP错误:无法使用发送电子邮件 PHP SMTP。您的服务器可能未配置为使用此服务器发送邮件 方法。 User-Agent:CodeIgniter日期:Sun,2015年6月21日05:52:56 +0600 来自:“发票”退货路径: 收件人:shamir.towsif@gmail.com主题: =?iso-8859-1?Q?Invoice?=回复:“shamir.towsif@gmail.com”X-Sender:shamir.towsif@gmail.com X-Mailer: CodeIgniter X-Priority:3(正常)消息ID: < 5585fcd8c63f7@gmail.com>哑剧版:1.0
内容类型:multipart / alternative;边界= “B_ALT_5585fcd8c643b”
这是MIME格式的多部分邮件。您的电邮申请表 可能不支持这种格式。
- B_ALT_5585fcd8c643b Content-Type:text / plain; charset = iso-8859-1 Content-Transfer-Encoding:8bit
测试
- B_ALT_5585fcd8c643b Content-Type:text / html; charset = iso-8859-1 Content-Transfer-Encoding:quoted-printable
测试
- B_ALT_5585fcd8c643b -
问题:我曾经能够发送电子邮件。然后我重新安装了我的操作系统和灯服务器,现在我不能。我做错了什么?
答案 0 :(得分:2)
我在CI中使用sendmail发送电子邮件。在使用发送邮件之前,您必须在CI中进行一些配置。
首先,转到system / libraries / Email.php并更改以下内容
class CI_Email {
var $useragent = "CodeIgniter";
var $mailpath = "/usr/sbin/sendmail"; // Sendmail path
var $protocol = "sendmail"; // mail/sendmail/smtp
var $smtp_host = "mail.blah-blah.com"; // SMTP Server.
.....
}
然后我制作一个发送电子邮件的方法。
public function send_mail($email, $subject, $message){
//$this->load->library( 'email' );
$this->email->from( 'no-reply@blah-blah.com', 'blah-blah.com' );
$this->email->to( $email);
$this->email->subject( $subject );
$this->email->message( $message );
$this->email->send();
echo $this->email->print_debugger();
}
这就是全部。您现在可以使用send_mail
方法发送电子邮件。