
php无法在邮件正文的html字符串中执行php代码;必须先在服务器端执行查询并拼接html字符串,再将纯html作为邮件内容发送。
php无法在邮件正文的html字符串中执行php代码;必须先在服务器端执行查询并拼接html字符串,再将纯html作为邮件内容发送。
在使用 mail() 函数发送 HTML 邮件时,一个常见误区是:试图将包含 标签的原始 PHP 脚本代码直接拼接到 $message 字符串中(如问题中所示)。这是完全无效的——因为邮件客户端(如 Outlook、Gmail 网页版等)既不解析也不执行 PHP;它们只渲染接收到的纯 HTML 内容。你写在字符串里的 只会原样显示为文本,甚至可能被过滤或导致渲染异常。
✅ 正确做法是:在发送前,由 PHP 服务端完成所有逻辑处理与 HTML 组装,最终 $message 中只包含已渲染完毕的、不含任何 PHP 标签的静态 HTML 字符串。
以下是重构后的完整示例(含关键修复与最佳实践):
<?php try {
$to = 'recipient@example.com'; // 注意:请替换为真实邮箱,避免使用混淆邮箱(如 __cf_email__)
$subject = 'Query from website';
// 1. 建立数据库连接并执行查询(务必检查连接有效性)
include_once "database.php";
if (!$conn) {
throw new Exception("Database connection failed");
}
$result = mysqli_query($conn, "SELECT id, UPPER(make) AS make_name FROM makes ORDER BY make_name");
if (!$result) {
throw new Exception("Query failed: " . mysqli_error($conn));
}
// 2. 构建 HTML 邮件正文 —— 纯字符串拼接,无 PHP 标签
$message = '<!DOCTYPE html><meta charset="iso-8859-1"><title>Delete employee data</title><style>
body { font-family: Arial, sans-serif; margin: 0; padding: 16px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 8px 12px; text-align: left; border: 1px solid #ddd; }
tr:nth-of-type(odd) { background-color: #f9f9f9; }
</style><h2>Vehicle Makes List</h2>
| Make |
|---|
| {$make} |
? å ³é®æ³¨æäºé¡¹ï¼
- â æ°¸è¿ä¸è¦å¨ $message ä¸å ï¼é®ä»¶å å®¹æ¯æç»è¾åºï¼ä¸æ¯æ¨¡æ¿æºç ã
- â å¯¹æ°æ®åºè¾åºå转ä¹ï¼ä½¿ç¨ htmlspecialchars() 鲿¢ XSS æ HTML è§£æé误ï¼å°¤å ¶å½ make å«
- â æ¾å¼å£°æ å ç»æï¼æåé®ä»¶å®¢æ·ç«¯å ¼å®¹æ§ï¼é¨å客æ·ç«¯å¯¹ç¢ç HTML æ¯æå·®ï¼ã
- â ä½¿ç¨ mysqli_fetch_assoc() æ¿ä»£ mysqli_fetch_array()ï¼æ´è¯ä¹æ¸ æ°ï¼é¿å ç´¢å¼/å ³è鮿··æ·ï¼å代ç ä¸ $row["upper(make)"] æ¯é误çåæ®µåï¼åºä¸ºå«å make_nameï¼ã
- â ï¸ é¿å å¨é®ä»¶ä¸å è½½å¤é¨èµæºï¼å¦ å¨é®ä»¶ä¸å ä¹å¿ ç¶å¤±æï¼å¤æ°å®¢æ·ç«¯å±è½å¤é¾ CSS/JSï¼ï¼æææ ·å¼å»ºè®®å èã
- ? ç产ç¯å¢å¡å¿ æ ¡éªæ°æ®åºè¿æ¥ä¸æ¥è¯¢ç»æï¼é¿å ç©ºç»æé导è´è¡¨æ ¼ç©ºç½ã
æ»ç»ï¼HTML é®ä»¶çæ¬è´¨æ¯ãæå¡ç«¯çæ â 客æ·ç«¯æ¸²æãï¼ææ PHP é»è¾å¿ é¡»å¨ mail() è°ç¨åå®æãææç»´ä»âåä¸ä¸ªè½è¿è¡ç PHP 页é¢â忢å°âçæä¸æ®µå®å ¨ãå ¼å®¹ãèªå å«ç HTML å符串âï¼å°±è½å½»åºè§£å³æ¤ç±»é®é¢ã
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











