【发布时间】:2016-08-17 13:59:08
【问题描述】:
我正在尝试制作自己的自定义联系表格。在测试它以进行改进时,我发现电子邮件不是 HTML 格式的。我不确定为什么会发生这种情况,但我发现我一定做错了,因为我的电子邮件服务提供商从其他来源接收 HTML 格式的电子邮件。我认为消息正文变量中的 HTML 代码也是正确的,所以它必须与 headers 变量或我设置它的方式有关。
编辑:与有人建议的不同,使用样式标签不是我的问题,因为我使用的不是 Gmail(不接受它们),而是 Outlook(确实接受它们)。
if ($_POST['Submit']) {
if (empty($_POST['Phone'])) {
$content = "<html>
<head></head>
<body>
<div class='boldtext'>From:</div>
$name
<br/>
<div class='boldtext'>E-mail:</div>
$email
<br/><br/>
$message
<style>
.boldtext {
font-weight: bold;
}
</style>
</body>
</html>";
}
以上是我的表单操作的 PHP 代码的一部分。剩下的部分是对每个输入的一些正则表达式验证,并回显作为对这些输入的响应。提交内容将发送到 Outlook 电子邮件地址,我知道该地址与头部或正文中的样式标签兼容。我做错了什么?
客户实际收到的电子邮件示例:
<html>
<head></head>
<body>
<div class='boldtext'>From:</div>
John Doe
<br/>
<div class='boldtext'>E-mail:</div>
email@email.com
<br/><br/>
This is a message.
<style>
.boldtext {
font-weight: bold;
}
</style>
</body>
</html>
【问题讨论】:
-
在这种情况下不需要内联样式。 Outlook,而不是 Gmail,将是接收这些邮件提交的电子邮件服务提供商。 “对所有内容都使用内联样式。此站点会将您的类转换为内联样式:premailer.dialect.ca”绝对不是我问题的答案。
-
当你说“不来html格式”时,你的意思是消息没有收到html标签吗?您能否发布电子邮件客户端从 php 代码中收到的具体内容?
-
当然,刚刚发布。通过“未格式化 HTML”,我的意思是变量 $content 按原样出现,格式永远不会被读取。我认为问题出在标题中,或者我没有正确声明电子邮件格式。一定是这样的。
标签: php html forms html-email contact-form