【问题标题】:PHP HTML email gets sent with tags发送带有标签的 PHP HTML 电子邮件
【发布时间】:2020-06-12 03:35:34
【问题描述】:
$to = 'jay@mywhitecard.ph';
$subject = 'Coupon Claimed!';
$header  = 'From: info@mywhitecard.ph';
$claimed = '<html><body>';
$claimed .= '<h1>Hello, World!</h1>';
$claimed .= '</body></html>';


mail($to, $subject, $claimed, $header);

我有这个简单的 html php 电子邮件,但是当它发送时,包括标签在内的所有内容都会被包含在内。

谷歌上的教程显示了与我所做的代码类似的示例,想知道我如何只能发送 div 内容。

【问题讨论】:

  • 您需要将标题内容类型设置为text/html 像这样$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
  • 感谢这使它工作,但我必须删除编辑过的“发件人”电子邮件(如发件人:info@gmail.com)才能使其工作,我如何让它们在同一时间?
  • 在您的 Content-Type 标头后添加 $header .= 'From: &lt;info@myshitecard.ph&gt;' . "\r\n";。 -- 你必须同时拥有内容类型和来源。 .= 表示“将其添加到变量中”(将字符串连接在一起)。所以这两行都在标题中。
  • @JeffVdovjak 哈哈哈@代码示例;-)
  • 您应该考虑使用像PHP Mailer 这样的邮件程序类,而不是直接通过mail() 发送电子邮件。与自行实现所有必需的 RFC 规则相比,使用此类发送 HTML 电子邮件要简单得多。除此之外,您还可以定义没有 HTML 的纯内容,因为有些用户不喜欢阅读 HTML 电子邮件(比如我),而是将电子邮件显示为 PLAIN!。

标签: php html email html-email


【解决方案1】:

您需要像这样将 Content-type 添加到您的标题中:

$to = 'jay@mywhitecard.ph';
$subject = 'Coupon Claimed!';
$claimed = '<html><body>';
$claimed .= '<h1>Hello, World!</h1>';
$claimed .= '</body></html>';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= 'From: info@mywhitecard.ph\r\n';

mail($to, $subject, $claimed, $headers);

【讨论】:

  • 也许它只在我这边,但使用它会将内容再次转换为标签
  • 我更改了最后一行 $headers (现在以 \r\n 结尾)。这行得通吗?
  • 不幸的是还是一样
  • “发件人”是否也不见了?因为上面的代码有错字(我会更正)。在 mail() 函数中,它说的是 $header 而不是 $headers。 (它应该抛出一个通知——但不是错误)。
  • @ButtonPress 我真傻!我很高兴它对你有用。调试时有通知很方便;)
猜你喜欢
  • 1970-01-01
  • 2013-05-18
  • 1970-01-01
  • 2016-07-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 2011-09-05
  • 1970-01-01
相关资源
最近更新 更多