在从 PHP 发送的电子邮件中使用 HTML 格式

2024-02-15

如何通过 PHP 脚本发送 HTML 格式?由于某种原因,它总是显示为<b>Example</b>代替Example。我确信我必须在某个地方包含 HTML 标头,我只是不知道需要做什么。我是一个十足的 PHP 菜鸟。 :)

这是我的 PHP 脚本:(相当长,抱歉!)

<?php

if(!$_POST) exit;

        $name     = $_POST['name'];
        $email    = $_POST['email'];
        $phone   = $_POST['phone'];
        $subject  = $_POST['subject'];
        $comments = $_POST['comments'];
        $verify   = $_POST['verify'];

        if(trim($name) == '') {
            echo '<div class="error_message">You must enter your name.</div>';
            exit();
        } else if(trim($name) == 'Name') {
            echo '<div class="error_message">You must enter your name.</div>';
            exit();
        }

        else if(trim($email) == '') {
            echo '<div class="error_message">Please enter a valid email address.</div>';
            exit();
        } else if(trim($email) == 'Email') {
            echo '<div class="error_message">Please enter a valid email address.</div>';
            exit();
        } else if(!isEmail($email)) {
            echo '<div class="error_message">Invalid e-mail address, please try again.</div>';
            exit();
        }

        if(trim($subject) == '') {
            echo '<div class="error_message">Please enter a subject.</div>';
            exit();
        } else if(trim($subject) == 'Subject') {
            echo '<div class="error_message">Please enter a subject.</div>';
            exit();
        }


        if($error == '') {

            if(get_magic_quotes_gpc()) {
                $comments = stripslashes($comments);
            }

         $address = "[email protected] /cdn-cgi/l/email-protection";

         $e_subject = '' . $subject . '.';

         $e_body = "<b>Name:</b> $name \n\n<b>Subject:</b> $subject \n\n<b>Email:</b> $email \n\n<b>Message:</b> $comments";
         $e_content = "";
         $e_reply = "";

         $msg = $e_body . $e_content . $e_reply;

         if(mail($address, $e_subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")) {

         echo "<div id='success_page'>";
         echo "<h1>Email Sent Successfully.</h1>";
         echo "<p>Thank you <strong>$name</strong>, your message has been sent!</p>";
         echo "</div>";
         //echo "</fieldset>";

         } else {

         echo 'ERROR!';

         }

    }

function isEmail($email) { // Email address verification, do not edit.

return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));

}
?> 

您需要将内容类型添加到 $additional_headers 参数中:

$headers  = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";
$headers .= "Return-Path: $email\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

if(mail($address, $e_subject, $msg, $headers)) {

我的建议是按照另一张海报所说的那样使用外部发送服务或类似的服务Zend_Mail http://framework.zend.com/manual/en/zend.mail.html这使得指定 HTML 和纯文本版本变得容易(我们中的一些人确实hateHTML 电子邮件;))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在从 PHP 发送的电子邮件中使用 HTML 格式 的相关文章

  • 将值设置为输入字段时,西班牙语文本无法正确显示

    我正在尝试将西班牙语文本设置到输入字段 但它似乎没有正确显示 但是 如果相同的文本位于 div 内部或已设置为输入字段的值 则该文本可以正常显示 HTML div Cuenta de Ahorros Persona F iacute sic
  • zend 表单验证

    我想知道 Zend Form 如何验证输入 我的意思是它如何知道要验证哪些输入字段 我查看了 php 全局变量 POST GET 但没有看到任何设置为标识符 例如 的内容 以便了解如何验证 有人能给我推荐一些关于这些东西的指南吗 好吧 找出
  • PHP 中的静态类初始值设定项

    我有一个带有一些静态函数的辅助类 类中的所有函数都需要一个 重 初始化函数来运行一次 就好像它是一个构造函数 有实现这一目标的良好实践吗 我唯一想到的就是打电话init函数 如果它已经运行过一次 使用静态 initialized变种 问题是
  • CSS 网格/布局框架,专注于固定元素和单页全屏布局

    经验法则 如果您在布局中过多地使用 CSS 请切换到框架 我已经研究了数十个网格 布局框架 其中大多数都专注于传统的文档网格布局 我的页面更像是一个 SPA 单页应用程序 它类似于桌面应用程序使用的布局 显然 HTML 不能很好地处理这个问
  • CSS 内边框?

    我纯粹用 CSS 创建了左侧的按钮 它是一个div 中的一个div 然而 右侧的三个按钮是background属性于img标签 我这样做是为了按照以下说明模拟翻转效果here http kyleschaeffer com best prac
  • 在 mysqli 准备好的语句程序风格中获取最后插入的 id 的正确方法是什么?

    我正在使用 mysqli 准备好的语句在表中插入记录 如下所示 link mysqli connect localhost my user my password world check connection if link printf
  • 如果 CSS 是渲染阻塞的,为什么我们会看到 FOUC?

    为了构建渲染树 浏览器需要 DOM 和 CSSOM CSSOM 只有在下载 CSS 后才能构建 本质上 一旦下载了 CSS 页面就应该可以正常渲染了 但是 为什么我们会在页面上看到 Flash Of Unstyled Content FOU
  • 优雅地退出 Laravel 作用域

    我有一个范围 它根据用户角色以限制方式起作用 您可以将一组规则转发到限制数据库最终输出的范围 一个非常简化的角色限制示例 first name foo 只会返回其记录first name开始于foo 这实际上意味着我已禁止具有该角色的用户查
  • 使用 IE9、10、11 的 CSS 将比例打印到 50% 等百分比

    Zoom css 属性不适用于 IE9 10 11 观察到打印预览 UI 令人不安 默认比例为 缩小以适合 当我将此比例从 缩小 更改为适合 50 时 页面显示正常 打印预览 任何人都可以帮助我如何使用 CSS 代码将比例设置为 50 为页
  • 错误 #520009 - 帐户受到限制

    我收到 520009 错误 帐户 电子邮件受保护 cdn cgi l email protection被限制 当尝试进行并行付款时 我的代码使用沙箱运行良好 但我切换到实时端点 它开始失败 有问题的帐户是有效的 PayPal 帐户 我使用的
  • 什么可能导致 Firefox 中出现此 HTML/CSS 渲染问题?

    款式 h2 color 71D0FF font size 11px font weight bold margin 0px 0px 5px 0px a box color FFFFFF important cursor pointer di
  • 将 Cloudinary 与 spatie/media-library Laravel 包一起使用

    有人使用 Laravel 包 spatie media library 和 Cloudinary 吗 我认为用 Flysystem 来实现它是微不足道的 我实际上使用 Cloudinary 作为带有 silvanite nova field
  • IE localStorage 事件失火

    在 Internet Explorer 9 和 10 中 localStorage 实现意外地触发事件 这里有很棒的线索 Chrome 的 localStorage 实现存在错误 https stackoverflow com questi
  • 将文本字段限制为仅包含数字的最佳方法?

    I m using the following Javascript to restrict a text field on my website to only accept numerical input and no other le
  • 将 echo 和 print 合并到一个语句中

    echo 1 print 2 3 返回 214 脚本如何以 14 结尾 当你这样做时 echo 1 print 2 3 PHP 会做 demo http codepad viper 7 com OfrNrs line op fetch ex
  • 使用 Imagick 动态图像创建/Apache 标头

    在将现有的稳定网站转移到新服务器时 我遇到了一些使用 Imagick 动态创建图像的代码的间歇性问题 该代码解析 GET 查询 例如 example com image php ipid 750123 r 0 w 750 h 1000 然后
  • 使用 Xpath 进行部分匹配

    我正在尝试创建一个搜索功能 允许使用 Xpath 按歌曲标题或流派进行部分匹配 这是我的 XML 文件
  • WordPress - 类别和子类别的嵌套列表

    我正在尝试显示带有嵌套子类别的 WordPress 类别列表 到目前为止 我只能获取父类别列表或不包括父类别的子类别列表 但我无法将两者连接在一起 这是我想要创建的结果 Parent Category 子类别 子类别 Parent Cate
  • sqlite3和pdo_sqlite有什么区别

    我正在将我的 Web 应用程序从 MySQL 迁移到 SQLite 数据库 我发现有两个 PHP 扩展用于与 sqlite 通信 php sqlite3 dll and php pdo sqlite dll 什么扩展比较好 或者另一个问题
  • 我如何向 Windows Server IIS 7 中的文件夹授予权限

    我是 PHP 和 Windows Server 新手 在查看我在 PHP 中创建的表单时遇到以下错误 Error in exception handler The stream or file C inetpub wwwroot wrp a

随机推荐

  • “Webdrivers”可执行文件可能具有错误的权限。请参阅 https://sites.google.com/a/chromium.org/chromedriver/home

    我环顾四周检查了这两个文档 但没有找到答案 我一直在尝试使用 InstaPy 作为 python 的 instagram api 在出现多个错误并假设 InstaPy 只是遇到一些问题后 我尝试使用 selinium 对其进行原始编码 插入
  • 使用 Gradle 将应用程序模块依赖项添加到 Android Studio 中的另一个应用程序模块中

    是否可以有 2 个应用程序模块 apply plugin com android application 在他们的 gradle 文件的头部 并且一个对另一个有依赖性 因此模块 A 依赖于模块 B 并且两者都是应用程序 dependenci
  • 在Python中将传递的字典“解包”到函数的名称空间中?

    在我所做的工作中 为了方便起见 我经常需要将参数分组为子集 d1 x 1 y 2 d2 a 3 b 4 我通过传递多个字典来做到这一点 大多数时候我直接使用传递的字典 即 def f d1 d2 for k in d1 blah d1 k
  • 如何删除tinymce中自动添加的p标签

    我使用的是tinymce 4 0 1 当您开始输入或按回车键时 它会自动添加 p 标签 如何动态删除这些 p 标签 然后将内容重新插入编辑器 您需要将以下行添加到 init 语句中 forced root block 所以 你的完整代码将是
  • PHP 函数与 jQuery AJAX?

    我有一个关于 PHP 函数 jQuery 和 AJAX 的问题 如果我的 php 索引中有一个像这样的按钮
  • 谷歌recaptcha Remoteip解释

    In the 验证码文档 https developers google com recaptcha docs verify它说remoteip参数是可选的 但我不明白它的目的 因为即使我发送与 REMOTE ADDR 不同的 IP 来自
  • 使用 KnpSnappyBundle 生成 jpg 时没有资源

    这似乎是一个已知问题 但我找不到解决方案 使用 KnpSnappyBundle 生成 jpg pdf 时 未加载 css 文件 在谷歌群组上 但没有提供答案 有没有人找到这个问题的解决方案 回答有点晚了 但我遇到了同样的问题 我使用资产的绝
  • 是否有可能有匹配所有有效正则表达式的正则表达式?

    是否可以仅使用正则表达式来检测给定字符串是否是有效的正则表达式 假设我有一些字符串 它们可能是也可能不是有效的正则表达式 我想要一个正则表达式与对应于有效正则表达式的那些字符串相匹配 那可能吗 或者我是否使用一些更高级别的语法 即上下文无关
  • jquery:嵌套标签和悬停()在 IE 中不起作用

    我有这样的结构 div span span span span span span span span div 我需要捕获容器的 mouseout 事件 所以我让 jquery 这样做 container hover function al
  • 在 TeamCity 5.1 通知中显示文件更改

    我想在 TeamCity 5 1 电子邮件通知中包含更改文件的列表 该通知会在构建成功或失败后发送给我的团队 我已经审查了在 TeamCity 5 1 中自定义通知 http confluence jetbrains net display
  • SwiftUI Widget iOS 14 渐变问题

    我想使用自定义颜色为我的小部件创建渐变颜色 当我只使用两种颜色时 我遇到了问题 结果没有应用其中一种颜色 但背景变成绿色 struct WeatherWidgetMediumView View var gradient LinearGrad
  • 为什么调用shared_from_this会调用std::terminate

    考虑这段代码 class A public std enable shared from this a public std shared ptr a f return shared from this int main A a std s
  • 实体框架:全局禁用删除

    我们正在开始一个新的应用程序 我们想使用实体框架 我们很少担心意外删除sql行 特别是意外设置相关数据等 我想禁用每个删除 因为我们只是用 validUntil 列标记每一行并且从不删除行 I saw 它可以通过 sql 中的角色来完成 h
  • 如何以编程方式更改 RecyclerView 中项目的位置?

    有没有办法将特定项目移动到特定位置RecyclerView using LinearLayoutManager以编程方式 你可以这样做 一些活动 片段 无论什么 List
  • 为什么连接字符串不适用于 EF 迁移?

    我创建了一个与 NuGet Gallery 实现一起使用的数据库 我可以在 sql manager 2012 中看到数据库 并且可以使用我的连接字符串从我编写的测试程序访问它 但是 当我尝试在包管理器控制台中运行 Update Databa
  • VB 中的类与模块

    在 VB 中使用模块而不是类有什么优势 如果有的话 它们有何不同 使用模块有哪些优点 缺点 在 VB 或 VB NET 中 我两者都使用 A Modules and B 类只有Shared功能 解决同样的问题 两者都可以让你从逻辑上grou
  • 删除所有早于 X 天的文件,但至少保留 Y 个最新的文件[重复]

    这个问题在这里已经有答案了 我有一个脚本 可以从备份目录中删除早于 X 21 天的数据库转储 DB DUMP DIR var backups dbs RETENTION 21 24 60 3 weeks find DB DUMP DIR t
  • 代号一个应用程序中的额外侧边菜单

    在我的应用程序中 我有一个右侧菜单 但似乎还有一个左侧菜单 仅包含后退按钮 没有菜单按钮 带有三条水平线 但如果触摸屏幕左边缘并拖动 则会出现菜单 我不明白为什么要创建它 但是有什么方法可以禁用或删除它吗 None
  • 在 PHP 中查找多个字符串位置

    我正在编写一个解析给定 URL 的 PHP 页面 我能做的就是仅找到第一个出现的值 但是当我回显它时 我得到另一个值而不是给定的值 这就是我到目前为止所做的 我知道可以使用循环 但我不知道循环体的条件 我怎
  • 在从 PHP 发送的电子邮件中使用 HTML 格式

    如何通过 PHP 脚本发送 HTML 格式 由于某种原因 它总是显示为 b Example b 代替Example 我确信我必须在某个地方包含 HTML 标头 我只是不知道需要做什么 我是一个十足的 PHP 菜鸟 这是我的 PHP 脚本 相