使用 Codeigniter 在电子邮件中添加 'From' Header

Add 'From' Header on email using Codeigniter

我在 CPanel 中使用 Codeigniter,我的代码已经发送了一封邮件,但是当邮件到达收件人时,主机名显示在发件人上。 我尝试了一些问题的答案:Change the sender name php mail instead of sitename@hostname.com 但在 Codeigniter 中,它们不起作用。

这是我的代码:

 $config = Array(
                'protocol' => 'ssmtp',
                'smtp_host' => 'ssl://ssmtp.googlemail.com',
                'smtp_port' => 465,
                'smtp_user' => 'mail@domainiwant.com', 
                'smtp_pass' => 'password',            
                'mailtype'  => 'html',
                'charset'   => 'iso-8859-1',
                'useragent' => 'MY NAME',
            );
            $this->load->library('email', $config); 
            $this->email->set_newline("\r\n");
            $this->email->from('mail@domainiwant.com', 'MY NAME');

            $email_to = 'receiver@gmail.com';
            $this->email->to($email_to);

            $this->email->message('Message testing ...');
            $this->email->send();

然而,正如我所说,当邮件到达收件人时,它们会显示主机名和一个完全不同的邮件地址,就像我放在 $config

上的一样

我知道这只会设置 the envelope sender 但我想将邮件地址设置为 mail@domainiwant.com 而不是使用 somemail@host.com.ex

接收邮件

根据可用的 CodeIgniter 电子邮件库的文档HERE,您的整个问题只是一个简单的错字。

$config['protocol'] 允许 mailsendmailsmtp 作为值。如果您不设置变量,或使用不允许的值,则整个库默认为 mail,它会尝试使用您自己的服务器作为邮件网关(这解释了为什么您的发件人地址显示为 username@servername)

将协议从 ssmtp 更改为 smtp,以便您实际使用您打算使用的 Google SMTP 服务器,并且您将获得您期望的结果