我有一个奇怪的问题,不确定是什么原因导致了这个问题。首先,我的控制器中有以下代码,
$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
我有两个问题,
我不知道为什么它在CI_email类中没有指定smtphost、user、pass、port等就发送电子邮件,当我单击视图中的按钮时,控制器运行并向会话用户发送电子邮件。
电子邮件可以发送到我公司的电子邮件,但它不能发送到我的gmail,即使我在控制器中保留了实时电子邮件,然后我在公司邮箱中收到电子邮件,我可以看到我gmail地址的CC,但在gmail框中,没有电子邮件。
最初,我确实在电子邮件库变量中键入了我的gmail-smtp设置,但在其他测试中,我删除了它。然后,即使在库中没有gmail SMTP设置之后,我也可以看到电子邮件发出,这也是我公司的电子邮件,而不是在gmail或Live电子邮件中,
我们必须在CI_Email类库中配置一些内容吗?
有什么想法吗?
我找到了答案,问题在下面的代码中
$protocol = "mail";
这是通过PHP发送电子邮件的默认协议,电子邮件将只进入同一域,而不是域外,我当时使用了gmail的SMTP协议,然后它就工作了,在PHP 5.6中,SMTP存在问题,但在PHP 5.5中,它起了作用!