繁体   English   中英

PHP电子邮件代码不以HTML格式发送电子邮件

[英]PHP Email Code not sending emails in HTML Format

对不起,有人可以帮忙吗?

我们有一些 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 时必须小心。

祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM