我已经按照一个教程从php发送邮件。
public function send_credentials($beneficiary_user){
$this->load->library(‘email’);
$email_config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => '465',
'smtp_user' => 'app123testing@gmail.com',
'smtp_pass' => 'apptesting',
'mailtype' => 'html',
'starttls' => true,
'newline' => "\r\n"
);
$this->email->from('app123testing@gmail.com', 'invoice');
$this->email->to('anilapu@navaratan.com');
$this->email->subject('Invoice');
$this->email->message('Test');
$this->email->send();
}
我必须做的其他设置才能让它正常工作 *运行echo $ this-> email-> print_debugger();.我得到了*
无法使用PHP mail()发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。
User-Agent: CodeIgniter Date: Sun, 9 Feb 2014 14:58:44 +0530 From: "invoice" Return-Path: Reply-To: "app123testing@gmail.com" X-Sender: app123testing@gmail.com X-Mailer: CodeIgniter X-Priority: 3 (Normal) Message-ID: <52f74a4c41e32@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="B_ALT_52f74a4c41e88" =?utf-8?Q?Invoice?= This is a multi-part message in MIME format. Your email application may not support this format. --B_ALT_52f74a4c41e88 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Test --B_ALT_52f74a4c41e88 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable Test --B_ALT_52f74a4c41e88--
答案 0 :(得分:5)
由于我们在评论中找到了您的问题的答案,所以写一个答案似乎是明智的。
问题是您的电子邮件配置数组($email_config
)没有做任何事情。虽然你可能有或没有在那里定义正确的设置,但它们没有任何意义,因为它们没有被正确使用。
因此,至少,您必须更改代码以反映以下更改:
$email_config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => '465',
'smtp_user' => 'app123testing@gmail.com',
'smtp_pass' => 'apptesting',
'mailtype' => 'html',
'starttls' => true,
'newline' => "\r\n"
);
$this->load->library('email', $email_config);
请注意,这只会解决您的方法问题,我无法验证您的设置/访问凭据的可信度。
编辑:
按照杰斯曼的建议,我决定深入挖掘一下。您可能需要查看此https://stackoverflow.com/a/17274496/2788532。
编辑#2:
您可以使用以下代码从CI的电子邮件类中访问有用的错误消息(当然,在您尝试发送电子邮件之后):
<?php echo $this->email->print_debugger(); ?>
答案 1 :(得分:1)
只需在您编写发送电子邮件代码的函数的开头添加此内容
someExe --argument 2>$null
电子邮件将转发,但错误将显示相同的错误
答案 2 :(得分:1)
你可以试试这个
Open system / libraries / email.php
修改
var $ newline =“\ n”; var $ crlf =“\ n”;
到
var $ newline =“\ r \ n”; var $ crlf =“\ r \ n”;
答案 3 :(得分:0)
进行类似的更改
'smtp_crypto'=>'ssl', //add this one
'protocol' => 'smtp',
'smtp_host' => 'smtp.gmail.com',
'smtp_port' => 465,