【发布时间】:2017-11-24 23:02:17
【问题描述】:
我可以将电子邮件发送到我的邮箱,但发件人始终是我自己的电子邮件地址,我希望发件人是填写联系表的人的实际电子邮件,所以我可以直接回复。
<?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{
}
}
?>
我错过了什么?因为它一直困扰着我,没有直接在线的答案。
帮助会很大
【问题讨论】:
-
让访问者填写表格,输入他们的电子邮件地址并将其更改为
$mail->From = $_POST['email'];?不应该那么难..当然我会先验证它。 -
不,不要那样做;它行不通。 PHPMailer 自动验证地址。看我的回答。