Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP电子邮件在GMail和Outlook中显示不正确_Php_Html_Outlook_Gmail_Phpmailer - Fatal编程技术网

PHP电子邮件在GMail和Outlook中显示不正确

PHP电子邮件在GMail和Outlook中显示不正确,php,html,outlook,gmail,phpmailer,Php,Html,Outlook,Gmail,Phpmailer,当我尝试使用PHPMailer库发送HTML电子邮件时,收到的电子邮件显示不正确 我已经尝试过使用不同的邮件客户端Gmail和Outlook,但它们看起来非常相似 这是我当前的代码 require_once“includes/mail denied.php”;//这里指定了$message变量,包含HTML和CSShttps://i.imgur.com/UG1B34V.png $keys=数组{{server_name}}}、{{player_name}}、{{REASURE_area}}、{{

当我尝试使用PHPMailer库发送HTML电子邮件时,收到的电子邮件显示不正确

我已经尝试过使用不同的邮件客户端Gmail和Outlook,但它们看起来非常相似

这是我当前的代码

require_once“includes/mail denied.php”;//这里指定了$message变量,包含HTML和CSShttps://i.imgur.com/UG1B34V.png $keys=数组{{server_name}}}、{{player_name}}、{{REASURE_area}}、{{date}}; $_POST['description']=nl2br$_POST['description']; $replace=array$servernam,$name,$\u POST['description'],dateY; $message=str_replace$key,$replace$message; $mail\U manager=新的PHPMailertrue; 试一试{ $mail_manager->SMTPDebug=2; $mail\u manager->setFrom'noreply@.$\u SERVER['HTTP\u HOST',$servernam; $mail\u manager->addAddress$mail; $mail_manager->addReplyTo'noreply@.$\u服务器['HTTP_主机'],“不回复”; $mail_manager->ISHTMLRUE; $mail\u manager->Subject=员工应用系统-.$servernam; $mail\u manager->Body=$message; $mail_manager->AltBody='您的申请已被拒绝'; $mail\u manager->send; }捕获异常$e{ 无法发送回显消息。邮件程序错误:{$mail\u manager->ErrorInfo}; 我确实收到了电子邮件,但HTML的一部分看起来乱七八糟

以下是HTML代码:

它应该是这样的:

这就是我收到电子邮件时的样子:


我对电子邮件中的HTML非常陌生,我不知道如何解决这个问题。

请注意,Outlook使用Word呈现电子邮件。您可以在以下文章中阅读有关支持和不支持的HTML元素、属性和级联样式表属性的更多信息:


以下是我从您的信息中收集到的一些建议: 正如我在评论中所说,尽可能多地使用表格。 避免使用类和内联样式。将字体样式添加到td以及td中的任何html元素。使用字体或span标记而不是p标记

例如:

<td style="font-family:Arial; font-size:18px;">
    <font style="font-family:Arial; font-size: 18px">Text here</font>
</td>
不要使用填充、边距和浮动,使用“高度”和“withds”创建间距。您甚至可以使用透明图像创建间距:

<tr>
    <td width="10" style="10px"></td> <!-- vertical spacing to create left/right margins -->
    <td><img src="full-image.jpg" alt="your visible image here"></td>
    <td width="10" style="10px"></td> <!-- vertical spacing to create left/right margins -->
</tr>
<!-- horizontal spacing to create top/bottom margins START -->
<tr height="50" style="height:50px;">
    <td height="50" width="10" style="height: 50; width: 10px"></td>
    <td height="50"><img height="50" style="height: 50px;" src="transparent.png" alt="this is a transparent image"></td>
    <td height="50" width="10" style="height: 50; width: 10px"></td>
</tr>
<!-- horizontal spacing to create top/bottom margins END -->
<tr>
    <td width="10" style="10px"></td> <!-- vertical spacing to create left/right margins -->
    <td><img src="full-image.jpg" alt="your visible image here"></td>
    <td width="10" style="10px"></td> <!-- vertical spacing to create left/right margins -->
</tr>
其他提示:

避免使用css边框半径,而是使用图像 使用websafe字体,使用google查找哪些是websafe字体 使用CDN参考您的图像 有免费的模板,您可以使用它们来编写代码,它们保证在任何客户端/设备中都能工作


我希望这会有所帮助。如果您还有问题,请告诉我。

您的html在哪里?每个客户端对html的阅读方式都不同。关键是要使用最基本的html和CSS。我建议尽可能多地使用表。它在includes/mail-denied.php中。您可以发布html代码而不是它的图像吗?我建议您在发布之前自行测试htmle在php代码中调用它。尝试改用表,就像我之前说过的那样。你也可以使用Litmus not free之类的工具在大多数流行的电子邮件客户端上测试html。我确实测试了html,它在测试中运行得非常好。而且我真的不知道你想说什么关于使用表,我是说使用而不是