HTML标签显示在邮件中[重复]

Posted

技术标签:

【中文标题】HTML标签显示在邮件中[重复]【英文标题】:HTML tags are displayed in mail [duplicate] 【发布时间】:2020-02-20 18:10:02 【问题描述】:

我正在尝试在 php 中通过邮件发送文本。消息放置在 html 标记内。发送时,邮件部分有效,但我收到的文本中包含 HTML 标记。

这是更好地理解我的问题的代码:

$car = "1223455667";
$to = "something@sample.com";
$subject = 'Test Mail';
$message = '<p>' . $car . '</p>';

$from = 'mymail@sample.com';

if(mail($to, $subject, $message ))
    echo 'success';
else
    echo 'Unable to send the email. Please try again.';

我在邮件中收到的输出:

我希望输出是这样的:1223455667

【问题讨论】:

您是作为 HTML 邮件发送的吗?您是否将其视为短信? (您需要为要发送的 HTML 邮件设置 Content-Type 标头) 是的,我收到它就像

1223455667

@kerbholz
没有。您发送了一封带有 HTML 元素作为正文的 text 邮件 - 由于您没有将邮件的内容类型指定为 HTML,因此这些邮件显示为常规文本。 documentation 有一个关于如何发送 HTML 电子邮件的示例。 如果您不想希望在文本邮件中看到 HTML 元素:请不要使用它们 我需要在邮件@kerbholz 中使用 标签 【参考方案1】:

在您的邮件中传递标题

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 

if(mail($to, $subject, $message, $headers ))
    echo 'success';
else
    echo 'Unable to send the email. Please try again.';

【讨论】:

以上是关于HTML标签显示在邮件中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用java从字符串中删除html标签[重复]

用正则表达式去除 html,除了包含字符的标签 [重复]

含有html标签的字符串,如何在winform中显示?

html没有在img标签中显示svg文件

显示 html 标签的 Laravel 5 邮件模板

渲染字符串以显示具有实际样式的文本(中断、粗体等)[重复]