使用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的日志文件,因为我可以在尝试通过代码点火器发送以捕获潜在问题