0

我正在尝试将用户的电子邮件地址拉入 $from 部分,但我没有任何运气。除了 $from 部分之外,每件事都正常工作,它没有提取所需的电子邮件地址。这是我在收件箱中看到的示例。

主题:OffPod 发件人:OffPod@p3nlhg757.shr.prod.phx3.secureserver.net (我希望这部分可以拉出下面的电子邮件,即 mcginndaniel123@gmail.com)
日期:2013 年 8 月 20 日星期二上午 10:44至:daniel@purplebottlemedia.com

发件人:Daniel 电子邮件:mcginndaniel123@gmail.com 消息:测试测试

这是我的代码:

<?php
 $name = $_POST['name'];
 $email = $_POST['email'];
 $message = $_POST['message'];
 $from = 'From:';
 $to = 'daniel@purplebottlemedia.com'; 
 $subject = 'OffPod';

 $body = "From: $name\n E-Mail: $email\n Message:\n $message";

if ($_POST['submit']) {
 if (mail ($to, $subject, $body, $from)) { 
    echo '<p>Your message has been sent!</p>';
  } else { 
    echo '<p>Something went wrong, go back and try again!</p>'; 
  }
 }
?>
4

3 回答 3

0

你是一个变量 $from = 'From:'; 它只需要一个不包含电子邮件格式的字符串值。

尝试这个

$from = $email;
于 2013-08-20T18:16:03.240 回答
0

根据 php.net http://php.net/manual/en/function.mail.php上的 mail() 文档,您应该在附加标题中添加发件人电子邮件地址,这是邮件中的第四个参数。例子:

$headers = 'From: webmaster@example.com' . "\r\n" .
  'Reply-To: webmaster@example.com' . "\r\n" .
  'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

您将 $from 变量放置在附加标头应位于的位置。您也只将 $from 变量设置为“From:”,而没有实际的发件人地址。这是您可以解决的方法

<?php
 $name = $_POST['name'];
 $email = $_POST['email'];
 $message = $_POST['message'];
 $to = 'daniel@purplebottlemedia.com';
 $headers = 'From: ' . $email . "\r\n" .
  'Reply-To: webmaster@example.com' . "\r\n" .
  'X-Mailer: PHP/' . phpversion(); 
 $subject = 'OffPod';

 $body = "From: $name\n E-Mail: $email\n Message:\n $message";

if ($_POST['submit']) {
 if (mail ($to, $subject, $body, $headers)) { 
    echo '<p>Your message has been sent!</p>';
  } else { 
    echo '<p>Something went wrong, go back and try again!</p>'; 
  }
 }
?>
于 2013-08-20T18:10:13.140 回答
0

尝试这个:

$from = 'From: '.$email;
于 2013-08-20T18:10:18.793 回答