使用phpmailer

时间:2015-08-04 16:54:10

标签: php phpmailer

我有一个联系表单,用户输入他/她的详细信息,包括他/她的电子邮件,下面的代码效果很好

 $mail             = new PHPMailer();
              $body             = $message;
              $mail->IsHTML(true);
              $mail->SMTPAuth   = true;
              $mail->Host       = "smtp.bizmail.yahoo.com";
              $mail->Port       = 587;
              $mail->Username   = "name@domainname.net";
              $mail->ContentType ='text/html';
              $mail->Password   = "password";
              $mail->SMTPSecure = 'tls';
              $mail->SetFrom('name@domainname.net', 'my name',false);
              $mail->Subject    = $subject;

              $mail->MsgHTML($body);
              $mail->IsSMTP();
              $address = $to;
              $mail->AddAddress($address, $name);
              if(!$mail->Send()) {
                  return 0;
              } else {
                    return 1;
             }

此代码发送邮件和标题“From:name@domainname.net”,但我想显示用户从联系表单输入的电子邮件。例如,用户输入myenquiry@anotherdomain.com,我希望来自邮件的是“From:myenquiry@anotherdomain.com”,其中另一个域不在我的域中(即雅虎小企业)

1 个答案:

答案 0 :(得分:2)

不要那样做。这是伪造来自地址的,它通常会导致您的消息无法传递,因为它们将无法通过SPF检查。对于雅虎来说尤其如此,雅虎是迄今为止最挑剔的ISP。将您自己的地址放在From中(正如您现在所做的那样),并在reply-to中添加提交者的地址(请参阅PHPMailer中的addReplyTo())。

此外,您的代码基于旧示例,因此请确保您使用的是最新示例the latest PHPMailer