php - 如何在php中发送带有多个表单字段的电子邮件
问题描述
我想从我的网站上具有多个表单字段的联系表单发送电子邮件。但我似乎无法做到这一点。这是我的表单 HTML 代码:
<form class="form-horizontal" action="mail.php" method="post">
<h2>Quick Contact</h2>
<div class="form-group">
<label class="control-label col-sm-2" for="email">Full Name:</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="fname" placeholder="Enter Full Name" name="fname">
</div>
</div><br>
<div class="form-group">
<label class="control-label col-sm-2" for="num">ID Number:</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="num" placeholder="Enter ID Number" name="id">
</div>
</div><br>
<div class="form-group">
<label class="control-label col-sm-2" for="email">Email:</label>
<div class="col-sm-6">
<input type="email" class="form-control" id="email" placeholder="Enter Email Address" name="email">
</div>
</div><br>
<div class="form-group">
<label class="control-label col-sm-2" for="sal">Monthly Salary:</label>
<div class="col-sm-6">
<input type="number" class="form-control" id="sal" placeholder="Enter Salary" name="salary">
<div class="label label-warning" >Numbers only. Any other characters are not permitted.</div>
</div>
</div><br>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-danger">Submit</button>
</div>
</div>
</form>
这是我的 PHP 代码,我使用 PHP mail() 发送电子邮件:
<?php
$to = 'mail@gmail.com';
$subject = 'Loan Request';
$from = $_POST['email']; // required
$name = $_POST['fname']; // required
$id = $_POST['id']; // required
$telephone = $_POST['mobile']; // not required
$salary = $_POST['salary']; // required
$message = $name." ".$telephone." ".$salary;
$headers = 'From: '.$from."\r\n".
'Reply-To: '.$from."\r\n" ;
// Sending email
if(mail($to, $subject, $from, $message)){
header('Location: http://example.com');
} else{
echo 'Unable to send email. Please try again.';
}
?>
邮件发送得很好,但是当它进入我的电子邮件时没有显示整个表单详细信息。我想知道如何捕获所有表单字段,因为我打算添加更多表单字段。这是一个很长的表格。
解决方案
如果您使用的是 PHP 的mail
函数,那么参数应该按此顺序排列。在您的示例中, $headers 参数根本没有传递。
if (mail($to, $subject, $message, $headers)) {
header('Location: http://example.com');
} else {
echo 'Unable to send email. Please try again.';
}
推荐阅读
- javascript - 传单错误:this.callInitHooks 不是函数错误?
- symfony - 如何在多对多关系的联接表上结合 queryBuilder 和原始查询?
- google-sheets - 如何使 COUNTIF 返回 TRUE 或 FALSE
- automation - 使用 karate.call 传递多个参数
- java - 我在 Java 代码(11 行)上找不到错误 - 你能给出一些想法吗?
- vba - 调用链接目录中的数据库
- answer-set-programming - Clingo:完整性约束中的逻辑或
- amazon-s3 - 有没有办法在 Minio API/SDK 中搜索文件名?
- youtube - YouTube 数据 API,只需数百次 PUT 更新即可达到 10,000 个配额
- java - 获取多级json值