php联系人表单电子邮件地址


php contact form email address

我在谷歌和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');
}

可能会有很大的帮助。