php联系表格电子邮件地址

时间:2013-07-22 16:03:18

标签: php html email

我在谷歌和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

2 个答案:

答案 0 :(得分:2)

试试这个:

$headers = "From: $first_name $last_name <$email_add>\r\n";
mail ($to, $subject, $message, $headers );

我将“\ r \ n”添加到From

答案 1 :(得分:0)

我了解您要在FROM行上尝试做什么,但您应该使用“真正的”FROM发件人。许多服务器不允许您使用来自不是主机的域的FROM行(考虑一下,事实是你说谎,填写表单的人实际上 发送该电子邮件)。

其次,按照user4035在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参数指出总是一个好主意,但前提是该电子邮件coount属于与服务器相同的域。

作为附注,请尽量将错误考虑在内,至少:

if (mail ($to, $subject, $message, $headers )) {
 header('Location: thanks.html');
} else {
 header('Location: error.html');
}

可能会走很长的路。