php - PHP电子邮件代码不以HTML格式发送电子邮件
问题描述
对不起,有人可以帮忙吗?
我们有一些 PHP 代码通过电子邮件向一个人发送电子邮件,询问我们网站上的服务。用于将标准电子邮件回复以 HTML 格式返回给询问者的电子邮件。但是在 2020 年 6 月的某个时候,虽然我们看不到任何更改,但电子邮件开始发送时没有 HTML 格式,并且基本上显示了 HTML 代码。
下面是创建电子邮件的 PHP 代码部分,但我看不出它有什么问题。因此,如果下面的代码没有问题,是什么导致代码突然中断并更改以 HTML 格式工作的响应电子邮件以开始作为 HTML 代码发送?(或者我看不到的代码有问题吗?)
任何帮助、指示或想法将不胜感激。
$email_from = 'example@example.co.uk';//<== update the email address
$email_subject = "Thank You for making enquiry";
$email_body = '<!DOCTYPE html>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css?family=Crimson+Text" rel="stylesheet">
<html>
<head>
<title></title>
</head>
<body>
EMAIL CONTENT WILL GO HERE!
</body>
</html>';
$to = $EnquiryEmailAddress;//<== update the email address
// Always set content-type when sending HTML email
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type:text/html;charset=ISO-8859-1' . "\r\n";
$headers .= "From: $email_from \r\n";
$headers .= "Reply-To: $email_from \r\n";
mail($to,$email_subject,$email_body,$headers);
解决方案
此代码依赖于服务器出站电子邮件是否正确设置。有一个内置在 PHP 中的电子邮件处理器,称为 PHPMailer。我鼓励你看看那个包,它会对你有很大帮助。你可以在这里阅读:https ://github.com/PHPMailer/PHPMailer
其次,我建议您使用 UTF-8 编码您的电子邮件,而不是使用 ISO-8859-1(如果可能)。
此外,如果您在呈现网页时运行邮件发送命令,则邮件发送命令可能需要一些时间。一个好的方法是在用户不等待网页呈现时批量发送电子邮件。这可以通过(例如)将所有出站电子邮件存储在数据库表中并让批处理器处理该表并按顺序发送电子邮件来完成。
最后,正如在对您的问题的评论中提到的那样:请注意电子邮件中的 HTML 非常有限,因此在构建电子邮件 HTML 时必须小心。
祝你好运!
推荐阅读
- python - 尝试运行我的 Tkinter GUI 时出错
- javascript - 如何淡化靠近导航栏的内容+如何在滚动时更改导航栏的颜色?
- javascript - 当从三元运算符返回时,方法如何变得未绑定?
- javascript - 如何从反应映射组件更新状态
- javascript - 将 useState 属性传递给
在 React Native 中使用 React Navigation - vba - 如何通过 vba 代码按照幻灯片标题插入图像
- java - 使用 Java 变量的值创建对象
- php - 无法在 Akeneo 中获取带有查询字符串的页面
- dataset - 我在哪里可以找到有效的 6 或 9 DOF IMU 数据集?
- python-3.x - 如何使我的 OpenFaaS python 中的同级文件夹在函数构建和部署时可见