使用msmtp时,有没有人成功使用标准的CodeIgniter电子邮件库发送电子邮件?
我正在运行Ubuntu,我已经成功安装和配置了MSMTP.我已经能够从命令行发送电子邮件,并使用默认的PHP mail()函数.
我的应用程序/ config / email.PHP文件看起来像这样
- $config = array(
- 'protocol' => 'sendmail','mailpath' => '/usr/bin/msmtp -C /etc/msmtp/.msmtprc -t','smtp_host' => 'smtp.gmail.com','smtp_user' => 'myemail@gmail.com','smtp_pass' => 'xxxxxxxx','smtp_port' => 587,'smtp_timeout' => 30,'smtp_crypto' => 'tls',);
但这不行.如果任何人成功,知道你是如何做到的.理想情况下,我想使用CodeIgniter的电子邮件库,因为它有很多很好的功能,我不想自己写.
我能够通过CodeIgniter和msmtp发送电子邮件,而不会有太多麻烦.在我的情况下,我使用Sendgrid,因为我遇到使用msmtp与Gmail和Yahoo的身份验证问题.这是我的设置(在Ubuntu 14.04上运行,PHP 5.5.9,Code Igniter latest):
msmtp config – /home/quickshiftin/.msmtprc
- account sendgrid
- host smtp.sendgrid.net
- port 587
- auth on
- tls on
- tls_starttls on
- tls_trust_file /etc/ssl/certs/ca-certificates.crt
- user SendGridUsername
- password SendGridPassword
- class Tools extends CI_Controller {
- public function message()
- {
- $this->load->library('email');
- $this->email->from('some-dude@gmail.com','Nate');
- $this->email->to('another-dude@gmail.com');
- $this->email->subject('Send email through Code Igniter and msmtp');
- $this->email->message('Testing the email class.');
- $this->email->send();
- }
- }
电子邮件库配置 – application / config / email.PHP
- $config = [
- 'protocol' => 'sendmail','mailpath' => '/usr/bin/msmtp -C /home/quickshiftin/.msmtprc --logfile /var/log/msmtp.log -a sendgrid -t',];
通过CLI发送电子邮件
对你的问题的想法
>您的网络服务器或命令行用户可以读取/etc/msmtp/.msmtprc吗?用户可以执行/usr/bin/msmtp吗?
> popen
可能在您的PHP环境中被禁用
>使用a debugger跟踪通过CI_Email :: _ send_with_sendmail方法的调用,以确定为什么它在你的情况下失败>如果您配置msmtp的日志文件,因为我可以在尝试通过代码点火器发送以捕获潜在问题