codeigniter在不配置电子邮件库的情况下发送电子邮件


codeigniter sending email without configuring email library

我有一个奇怪的问题,不确定是什么原因导致了这个问题。首先,我的控制器中有以下代码,

    $this->load->library('email');
    $this->email->from('2@2.com', 'Test email');
    $this->email->to($this->session->userdata('user_email')); 
    $this->email->subject($subject);
    $this->email->message($message);    
    $this->email->send();
    $this->email->print_debugger();

我的电子邮件库如下,

class CI_Email {
var $useragent      = "CodeIgniter";
var $mailpath       = "/usr/sbin/sendmail"; // Sendmail path
var $protocol       = "mail";   // mail/sendmail/smtp
var $smtp_host      = "";       // SMTP Server.  Example: mail.earthlink.net
var $smtp_user      = "";       // SMTP Username
var $smtp_pass      = "";       // SMTP Password
var $smtp_port      = "25";     // SMTP Port
var $smtp_timeout   = 5;        // SMTP Timeout in seconds
var $smtp_crypto    = "";       // SMTP Encryption. Can be null, tls or ssl.
var $wordwrap       = TRUE;     // TRUE/FALSE  Turns word-wrap on/off

我有两个问题,

  1. 我不知道为什么它在CI_email类中没有指定smtphost、user、pass、port等就发送电子邮件,当我单击视图中的按钮时,控制器运行并向会话用户发送电子邮件。

  2. 电子邮件可以发送到我公司的电子邮件,但它不能发送到我的gmail,即使我在控制器中保留了实时电子邮件,然后我在公司邮箱中收到电子邮件,我可以看到我gmail地址的CC,但在gmail框中,没有电子邮件。

最初,我确实在电子邮件库变量中键入了我的gmail-smtp设置,但在其他测试中,我删除了它。然后,即使在库中没有gmail SMTP设置之后,我也可以看到电子邮件发出,这也是我公司的电子邮件,而不是在gmail或Live电子邮件中,

我们必须在CI_Email类库中配置一些内容吗?

有什么想法吗?

我找到了答案,问题在下面的代码中

$protocol       = "mail";

这是通过PHP发送电子邮件的默认协议,电子邮件将只进入同一域,而不是域外,我当时使用了gmail的SMTP协议,然后它就工作了,在PHP 5.6中,SMTP存在问题,但在PHP 5.5中,它起了作用!

相关文章: