回复电子邮件未正确填充

时间:2013-03-27 20:50:49

标签: php phpmailer

当我点击回复按钮时,我希望能够使用$ email而不是我用来发送表单的电子邮件(someone@gmail.com)回复发送电子邮件的用户。这个名字是正确的,不是电子邮件 http://oi50.tinypic.com/1z3auc0.jpg 现在我认为这些代码应该可以工作,但事实并非如此!我做错了什么?

   $mail->From     = $email;
   $mail->FromName = $name;
   $mail->SetFrom($email, $name);

这是完整的邮件。                    

    $mail = new PHPMailer;
    $mail->IsSMTP();                     // Set mailer to use SMTP
    $mail->SMTPDebug = 0;  // debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true;             // Enable SMTP authentication
    $mail->SMTPSecure = 'ssl';          // Enable encryption, 'ssl' also accepted
    $mail->Host = 'smtp.gmail.com';     // Specify main and backup server
    $mail->Port = 465;        // specify port
    $mail->Username = 'someone@gmail.com';      // SMTP username
    $mail->Password = 'password';                    // SMTP password
    $mail->WordWrap = 50;                                 // Set word wrap to 50   
    $mail->IsHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Quick Comment';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';



   // gets info from form
   $name = $_POST['name'] ;
   $email = $_POST['email'] ;
   $phone = $_POST['phone'] ;
   $message = $_POST['message'] ;



    // defines how message looks in email
   $mail->Body="
   Name: $name<br>
   Telephone: $phone<br>
   Email: $email<br>
   -------------------<br>
   Message:<br>
   $message";



    // makes email reply to user
   $mail->From     = $email;
   $mail->FromName = $name;
   $mail->SetFrom($email, $name);
   $mail->AddAddress('someone@gmail.com');  // send to


if(!$mail->Send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}

echo 'Message has been sent';

?>

3 个答案:

答案 0 :(得分:0)

我认为这篇文章对您有用: phpmailer: Reply using only "Reply To" address 我认为AddReplyTo()函数是你需要的功能。

答案 1 :(得分:0)

$mail->AddReplyTo('example@example.com', 'Reply to name');

这样的东西

答案 2 :(得分:0)

大多数邮件服务器都不允许您位于“发件人”标题中。这是一件好事,因为垃圾邮件过滤器会对说谎做出反应。无论你做什么,他们要么强迫你的邮件地址进入“发件人”标题,要么拒绝发送,或者其他疯狂的东西。

“回复”标题似乎在您的屏幕截图中正确设置。它是有效的唯一标题,可以使回复电子邮件的地址与最初发送的地址不同。