使用Codeigniter发送电子邮件时遇到问题 - 邮件正文中发送的邮件头

时间:2011-01-07 15:21:17

标签: php codeigniter sendmail pyrocms

在codeigniter中遇到电子邮件类的奇怪问题。当我直接向我的Gmail帐户电子邮件地址发送电子邮件时,它可以正常工作。但是,如果我将电子邮件发送到其他电子邮件地址并使用POP3将该电子邮件地址导入gmail,则由于某种原因,所有标头都包含在邮件中。

以下是发送电子邮件的代码:

$this->email->clear();
$config['mailtype'] = "html";
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$this->email->from('email@example.com', 'Website');
$this->email->to('accountthatimportstogmail@url.com');
$this->email->message($message);

当电子邮件发送到通过POP3导入gmail的帐户时,这是收件箱中的内容:

Date: Fri, 7 Jan 2011 15:07:04 +0000

From: "Website" <email@example.com>
Reply-To: "email@example.com" <email@example.com>
X-Sender: email@example.com

X-Mailer: CodeIgniter

X-Priority: 3 (Normal)

Message-ID: <4d272c1835479@example.com>

Mime-Version: 1.0

Content-Type: multipart/alternative; boundary="B_ALT_4d272c1835c46"




This is a multi-part message in MIME format.

Your email application may not support this format.



--B_ALT_4d272c1835c46

Content-Type: text/plain; charset=utf-8

Content-Transfer-Encoding: 8bit



this is the email message content





--B_ALT_4d272c1835c46

Content-Type: text/html; charset=utf-8

Content-Transfer-Encoding: quoted-printable

<html>
<body>
       <p>this is the email message content
</p>
</body>
</html>



--B_ALT_4d272c1835c46--

4 个答案:

答案 0 :(得分:1)

这听起来好像不是一个codeigniter问题。

您已测试并显示消息正确发送。您已经看到它发送到其他POP3帐户。 GMail可以获取POP3帐户数据,但是可以使用它。

下一个测试是使用客户端,比如Thunderbird(桌面)或Squirrel Mail(网络),看看邮件是否从这些来源正确到达。

下一个测试(如果不是)是在另一台服务器上使用与另一个提供商完全不同的POP3帐户,看看那里发生了什么。

原因是错误(正如你所看到的)似乎发生在POP3的交付和GMail的到来之间。我想要的故障查找器是确定这是一个格式错误的电子邮件或(这将是我的猜测)如果POP3服务器有任何异常配置CI可能没有考虑到。

为了节省时间,我会在CodeIgniter论坛上发帖询问是否有其他人遇到过这些问题,在这种情况下可能存在已知的错误或错误或某种缺点。在等待答案时,我会看着我的POP3服务器并询问它为什么以我不喜欢的方式中继消息,如果这是POP3,服务器类型或配置问题。最重要的是,一旦我知道问题是什么,我如何更改我的电子邮件发送软件(CI)以发送不会以这种方式中断的电子邮件?

但首先要知道问题的根本原因。

答案 1 :(得分:1)

请使用 $ config ['protocol'] ='sendmail';

答案 2 :(得分:0)

由于邮件被传递到相关地址(pop3帐户)codeigniter / sendmail / php / dns / smtp,所有参与邮件传递的人都已经完成了对他们的期望。此外,您还证明了Google的邮件提取程序已经过配置,可以从pop3服务器成功获取邮件并将其放入收件箱,也没有任何问题。

您想知道的是如何更改从您的Gmail帐户收件箱中显示从pop3邮件中导入的内容的方式,这超出了您在此处定位的受众范围,如果您的邮件已发送,我们的工作已完成

解决问题的一种方法是将邮件直接发送到您的Gmail帐户。作为主要收件人(发送给您,您可以逗号分隔多个帐户)或CC或BCC地址中的任何一个,这将避免从POP3获取。然后,这将根据发送给您的任何其他消息显示在您的收件箱中,并按照惯例隐藏标题。

这适合我。

让我们知道情况如何......

答案 3 :(得分:-1)

我相信这篇文章可以帮助您:Sending E-mails with CodeIgniter

克莱伯。