0

当我点击回复按钮时,我希望能够回复使用 $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';

?>
4

3 回答 3

0

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

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

于 2013-03-27T22:59:54.167 回答
0

我认为这篇文章对您有用: phpmailer:仅使用“回复”地址回复 我认为 AddReplyTo() 函数是您需要的函数。

于 2013-03-27T21:08:07.317 回答
0

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

于 2013-03-27T21:09:01.823 回答