繁体   English   中英

回复发件人phpmailer

[英]Reply to sender phpmailer

我可以毫无问题地将电子邮件发送到我的邮箱,但发件人始终是我自己的电子邮件地址,我希望发件人是填写联系表格的人的真实电子邮件,因此我可以直接回信。

<?php

require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer();
function SendMail($to, $from, $body, $mail)
{
$mail->SMTPOptions = array(
'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
)
);
$mail->isSMTP();

$mail->Host = "smtp.office365.com";
$mail->Port = "587";
$mail->Username = "MY EMAIL ADDRESS HERE";
$mail->Password = "MY PASSWORD";
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
// Send the mail

$mail->From = "MY EMAIL ADDRESS HERE";
$mail->setFrom($from, "Contact Form Request");
$mail->AddAddress("MY EMAIL ADDRESS HERE", "Mick");
$mail->Subject = "Contact Form Request";
$mail->Body = $body;

if($mail->send())
{
    return true;
}else{
  var_dump($mail->ErrorInfo);
  die();
  return false;
}

}

if ($_POST["submit"]) {

$userDetails = array(
"sender" => $_POST['name'],
"senderEmail" => $_POST['email'],
"phone"       => $_POST['phone'],
"address1"    => $_POST['address1'],
"address2"    => $_POST['address2'],
"address3"    => $_POST['address3'],
"postcode"    => $_POST['postcode'],
"skipsize"    => $_POST['skipsize'],
"delivery"    => $_POST['delivery'],
"message"     => $_POST['message'],
"pickup"      => $_POST['pickup'],
);


$mailBody .= "Name: $userDetails[sender] \n";
$mailBody .= "Email: $userDetails[senderEmail] \n";
$mailBody .= "Phone Number: $userDetails[phone] \n";
$mailBody .= "Address: $userDetails[address1], $userDetails[address2], $userDetails[address3], $userDetails[$postcode] \n";
$mailBody .= "Phone Number: $userDetails[phone] \n";
$mailBody .= "Skip Size Wanted: $userDetails[skipsize] \n";
$mailBody .= "Delivery Date Wanted: $userDetails[delivery] \n";
$mailBody .= "Pick Up Date Wanted: $userDetails[pickup] \n";
$mailBody .= "Message: $userDetails[message] \n";

if(SendMail("stuart@foamymedia.com", $from, $mailBody, $mail))
{
    $thankYou="<p class='thankyou'>Thank you! Your message has been sent.</p>";

}else{

}

}

?>

我想念什么? 因为它一直困扰着我,而且无法直接在线找到答案。

帮助会很棒

您真的不想要这样做! 它是伪造的,将导致SPF检查失败,从而导致您的邮件被退回或过滤垃圾邮件。

做这个:

$mail->From = "MY EMAIL ADDRESS HERE";
$mail->From = "MY NAME HERE";
if (!$mail->addReplyTo($_POST['email'])) {
    die('Invalid email address');
}

您使用的是旧版本的PHPMailer- 获取最新版本

另外, 请勿禁用TLS证书验证。 Office365 不会提供无效的证书-如果失败,则是由其他一些问题引起的,例如SMTP流量被ISP拦截和重定向,这是很常见的。 找出失败的原因并使用ISP提供的发送机制-这可能会导致您无法使用Office365地址,原因与您无法伪造提交者的发件人地址相同。

所有这些都在PHPMailer随附的联系表单示例中进行了演示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM