我在谷歌和Youtube上搜索过这个答案,但没有找到答案。
我在我的网站上创建了一个非常简单的联系表格。
(http://www.torontoimc.com/contact)
我附上了一个单独的PHP文件来处理联系人表单元素。
当有人通过我网站上的表格向我发送询问时,我会收到除该人的电子邮件地址输入部分信息外的所有信息。
这是非常重要的,我收到了那个电子邮件地址,否则我将无法回复谁发送给我。
我已经尝试将表单设置为发送到我的gmail和outlook电子邮件,但它只是将其发送为:
它只是显示发件人的电子邮件地址是一个随机名称"@hemi.websitewelcome.com"
我不确定这是服务器端的问题还是PHP文件的问题。
我已经附上了我的联系人表单和PHP文件的代码。
这是联系表格代码:
<form action="formprocess.php" method="post" name="contact">
<fieldset>
<label>First Name</label>
<input name="first_name" type="text"/>
<label>Last Name</label>
<input name="last_name" type="text"/>
<label>Email</label>
<input name="email_add" type="text"/>
<label>Please write your inquiry below.</label>
<textarea name="message" rows="15" cols="40">
</textarea>
<input type="submit" name="submit" id="submit" value="Submit"/>
<input type="reset" name="reset" id="reset" value="Reset"/>
</fieldset>
</form>
以下是php代码:
<?php
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email_add = $_POST['email_add'];
$message = $_POST['message'];
$to = "torontoimc@gmail.com";
$subject = "Inquiry for TorontoIMC";
mail ($to, $subject, $message, "From: " . $first_name . $last_name . $email_add);
header('Location: thanks.html');
exit();
?>
如果这是一个重复的问题,我很抱歉,但我是php的新手,还没有真正找到答案,如果有人能帮我,我将非常感谢。
谢谢,
Latish Vohra
试试这个:
$headers = "From: $first_name $last_name <$email_add>'r'n";
mail ($to, $subject, $message, $headers );
我将"''r''n"添加到From
我理解您试图在FROM
行上做什么,但您应该使用"真正的"FROM发送方。许多服务器不允许您使用来自非主机域的FROM
行(仔细想想,事实是您在撒谎,填写表格的人实际上并没有发送该电子邮件)。
其次,按照用户4035在FROM
中设置电子邮件样式的方式,如果你要使用name last name <email>
,这可能不仅是正常练习的方式,而且是你编写的方式,加入没有空格的字段,你可能会得到一个FROM
行,比如这个FrançoisMARTIN MELLIERfmartinm@gmail.com
,它可能包含非法字符和/或空格,可能会导致一些服务器阻塞或丢弃。相反,'FROM: '. $first_name . ' '. $last_name. ' <'. $email_add. '>'
将产生FROM: François Martin Mellier <fmartinm@gmail.com>
。但同样,您应该使用来自您发送的同一域的真实帐户(可能类似于'FROM: New enquiry <info@torontoimc.com>'
?)。正如已经指出的,在消息的正文或主题行中包括email_add
字段以便接收它;那才是合适的地方。
使用像mti2935指出的-f
参数总是一个好主意,但前提是该电子邮件帐户与服务器属于同一域。
顺便说一句,尽量将错误考虑在内,最低限度:
if (mail ($to, $subject, $message, $headers )) {
header('Location: thanks.html');
} else {
header('Location: error.html');
}
可能会有很大的帮助。