PHP - 将表单发送到电子邮件

时间:2016-09-22 09:48:11

标签: php email

将表单发送到我的电子邮箱时遇到问题。 目前,当我发送表格时,我收到来自“emailtest@test.com”的邮件,邮件为$ message2,但我没有从'inputEmail'收到$ message给我的电子邮件“emailtest@test.com”。

我想补充一点,我不是PHP程序员,这是我用这种语言编写的第一个脚本。

我非常感谢你的帮助

 <?php 
    $to = 'emailtest@test.com'; // this is your Email address
    $from = $_POST['inputEmail']; // this is the sender's Email address
    $first_name = $_POST['inputName'];
    $inputCompany = $_POST['inputCompany'];
    $inputPosition = $_POST['inputPosition'];
    $inputProjects = $_POST['inputProjects'];
    $inputOfficeProjects = $_POST['inputOfficeProjects'];
    $inputPresentation = $_POST['inputPresentation'];
    $inputMessage = $_POST['inputMessage'];
    $number = $_POST['number'];
    $subject = "Test";
    $subject2 = "Test1";
    $message = $first_name . " example " . $inputPosition . " wrote the following:" . "\n\n" . $_POST['message'];
    $message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
    $headers = "From:" . $from;
    $headers2 = "From:" . $to;
    mail($to,$subject,$message,$headers);
    mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
    // echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
    header('Location: dziekujemy.html'); 
?>

1 个答案:

答案 0 :(得分:0)

由于您的代码在本地环境中工作,使用mailtodisk,我怀疑邮件服务器存在“问题”。您正在将第一次电子邮件发送尝试的From:标头设置为填写表单的人员的电子邮件地址。大多数邮件服务器可能会拒绝它,因为它不是您拥有的有效地址。我不是这方面的专家,所以有人可能会有更好,更详细的解释。

从第一封电子邮件中删除标头,或将From:标头设置为可通过该邮件服务器实际发送的地址。如果这样可行,您可以使用Reply-to标题,使大多数客户能够直接回复设置的电子邮件地址。

以下示例:

...

$headers = 'From: ' . $to . "\r\n" .
    'Reply-To: '.$from;

...

我可能会建议 - 即使它起初看起来很复杂 - 使用enter image description here。它使用PHP发送电子邮件变得更加容易。