PHP邮件表单问题:如何在邮件内容中添加Name字段信息
修复后的PHP邮件表单代码
原代码有两个明显问题:一是数组访问的语法错误,二是没正确拼接名称和消息内容。按下面修改就能实现需求:
修改后的完整代码
<?php // 检查是否同时提交了名称和消息内容 if(isset($_POST["Name"]) && isset($_POST["message"]) && !empty($_POST["Name"]) && !empty($_POST["message"])) { // 拼接邮件内容,按要求包含名称格式 $emailContent = "Name: " . $_POST["Name"] . "\n\n" . $_POST["message"]; // 设置邮件头,避免被当作垃圾邮件 $headers = "From: " . $_POST["Name"] . "<noreply@yourdomain.com>" . "\r\n" . "Reply-To: " . $_POST["email"]; // 如果表单有邮箱字段可以保留,没有就注释掉 // 发送邮件 mail("myemailadress@gmail.com", "Haar van Shar contact formulier", $emailContent, $headers); } ?>
关键修改点说明
- 修正了
$_POST数组的访问语法:原代码里的$_POST"Name"["message"]是错误写法,正确应该用$_POST["Name"]获取用户输入的名称,$_POST["message"]获取消息内容。 - 新增了字段非空判断:避免用户空提交导致发送空邮件。
- 拼接了符合要求的邮件内容:用
\n\n分隔名称和消息,让邮件格式更清晰易读。 - 添加了邮件头:指定发件人和回复邮箱,能降低邮件被标记为垃圾邮件的概率,也方便你直接回复用户。
额外注意事项
- 确保你的HTML表单里,输入名称的输入框
name属性是"Name",消息输入框的name属性是"message",否则无法正确获取用户输入的值。 - 如果你的服务器
mail()函数经常失效或者邮件容易进垃圾箱,建议用PHPMailer这类专业的邮件发送库,稳定性和兼容性更好。
内容的提问来源于stack exchange,提问作者siebetimmer
相关产品推荐
相关产品推荐

