0

巨大的编辑!!!!!!!!!好的,所以它不是 HTML 或其他什么。当我将其原始粘贴到 PHP 消息变量中时,它会以完美格式发送。这与 textarea 框粘贴部分有关……这使它无法正常工作。是换行符吗?....嗯

好的,所以这对我来说是令人沮丧的一天。我正在尝试发送 HTML 电子邮件,我可以将其粘贴到消息表单文本区域中。好吧,我把它剥离到了准系统,它不会让身体上方和身体被放入 HTML 之后的任何东西。

它打印这个:

<html> <head> <title>HalfOffDeals - Thank you!</title> </head> <body>

然后它吐出身体......虽然没有格式化,没有风格。

然后是这个:

</body> </html>

我尝试将内联 CSS 与样式标签放在一起,它只是完全省略了它。我正在使用 CodeIgniter,我不知道它是否会自动删除它不应该的内容。我有一个表格,上面写着(TO、SUBJECT 和 MESSAGE)。在消息部分,您粘贴您的 HTML 电子邮件模板,并将其发送到电子邮件。

我遇到的另一个问题是如何将 '' 添加到标题中:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

我只是对为什么我的电子邮件不接受 HTML 感到困惑。这就是我的设置方式:

public function send_email() {
    $to = $this->input->post('to');
    $subject = $this->input->post('subject');
    $message .= $this->input->post('message');

    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

    // Additional headers
    $headers .= 'To: Customer <'.$to . "\r\n";
    $headers .= 'From: noreply@intellectproductions.com <noreply@intellectproductions.com>' . "\r\n";

    // Mail it
    mail($to, $subject, $message, $headers);
}

有任何想法吗?

这是电子邮件模板: http: //pastebin.com/D04cLXe4

4

4 回答 4

4
 $headers .= 'To: Customer <'.$to . "\r\n";

改成

 $headers .= 'To: Customer <'. $to .'>'."\r\n";

并尝试:

$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

change to 

$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

你的服务器是 linux,如果 windows "\r\n",换行符是 "\n"

于 2013-08-13T17:18:27.653 回答
1

我看到您确实在使用 CodeIgniter - 所以,我建议使用CodeIgniter 的 Email 类

尝试将您的功能更改为:

public function send_email() {
    $to = $this->input->post('to');
    $subject = $this->input->post('subject');
    $message .= $this->input->post('message');

    $this->load->library('email');

    // To send HTML mail, set the appropriate mailtype
    $this->email->set_mailtype('html');

    // setup the message
    $this->email->to($to);
    $this->email->from('noreply@intellectproductions.com');
    $this->email->subject('Put the subject here');
    $this->email->message($message);

    // Mail it
    $this->email->send();
}

这将正确处理 HTML 电子邮件,即使它们有附件。把你的代码保存到重要的地方,你不需要做所有这些工作。;)

于 2013-08-13T17:24:08.460 回答
0

以前我使用PHP邮件功能的时候,也遇到了一些问题。然后我遇到了phpmailer 类,我的问题就解决了。好好看看吧。这很值得。

于 2013-08-13T17:45:23.510 回答
0

要发送html电子邮件,您可以使用默认 CI 电子邮件设置;

    $this->load->library('email');
    $config = array(
        'mailtype' => 'html',
        'newline' => '\r\n',
        'charset' => 'utf-8' //default charset
    );
    $this->email->initialize($config);
    $this->email->from($sender);
    $this->email->to($receiver);
    $this->email->subject($subject);
    $this->email->message($message);
    $this->email->send();

有关更多详细信息,请参阅CI 电子邮件类。也尝试使用$this->email->print_debugger()查看电子邮件错误/

于 2013-08-13T17:30:44.837 回答