【问题标题】:php contact form email addressphp联系表格电子邮件地址
【发布时间】:2013-07-22 16:03:17
【问题描述】:

我在 Google 和 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 的新手,还没有真正找到答案,如果有人可以帮助我,我将不胜感激。

谢谢,

拉丁文

【问题讨论】:

  • 我建议使用默认电子邮件地址作为发件人地址,并将提交的电子邮件地址作为邮件的一部分。这意味着您没有将用户提交的数据作为标题的一部分包括在内,一方面。此外,一些邮件服务器会默默地丢弃发件人行格式错误的邮件,这意味着如果用户的电子邮件地址有错字,电子邮件将不会被发送(你永远不会知道)

标签: php html email


【解决方案1】:

试试这个:

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

我在 From 中添加了“\r\n”

【讨论】:

  • 您可能还需要添加 -f 标志来设置信封发件人:mail ($to, $subject, $message, $headers, "-f " . $email_add );
【解决方案2】:

我了解您在FROM 行中尝试执行的操作,但您应该使用“真实”的 FROM 发件人。许多服务器不允许您使用来自非主机域的FROM 行(想想看,事实是您在撒谎,填写表格的人实际上没有发送该电子邮件)。

其次,按照user4035在FROM中设置电子邮件样式的方式,如果你要使用name last name &lt;email&gt;,它可能不仅是正常练习的方式,也可能是你写的方式它,加入没有空格的字段,你可能会得到一个FROM 行,例如FrançoisMARTIN MELLIERfmartinm@gmail.com,它可能包含非法字符和/或可能导致某些服务器阻塞或丢弃的空格。而'FROM: '. $first_name . ' '. $last_name. ' &lt;'. $email_add. '&gt;' 将产生FROM: François Martin Mellier &lt;fmartinm@gmail.com&gt;。但同样,您应该使用来自您发送的同一域的真实帐户(可能类似于'FROM: New enquiry &lt;info@torontoimc.com&gt;' ?)。正如已经指出的那样,在邮件正文或主题行中包含email_add 字段以便接收它;这些是合适的地方。

使用-f 指出的 mti2935 参数始终是一个好主意,但前提是该电子邮件计数与服务器属于同一域。

作为旁注,尽量考虑错误,至少:

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

可能会有很长的路要走。

【讨论】:

  • 我最终在 Youtube 上使用了一个新的 php 教程作为联系表。我是 php 新手,所以该教程真的很有帮助。它甚至包括验证。感谢所有帮助和意见的家伙。
猜你喜欢
  • 1970-01-01
  • 2012-12-31
  • 2016-08-12
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
相关资源
最近更新 更多