我试图在(共享)网络托管帐户上设置网站。我遇到了mail()方法的问题。该网站有一个联系表单,用户可以在其中提交反馈:
Name: _____________
Email: ____________
Message: __________
所以我使用mail()方法将其作为电子邮件发送到我自己的帐户:
if(mail("mysitecustomerfeedback@hotmail.com",
"Customer message",
$message,
"From: $name <$email>\r\n".
"Reply-To: $name <$email>\r\n".
"X-Mailer: PHP/".phpversion()) === true)
{
$messageWasSent = true;
}
因此,当我尝试时,会发送电子邮件,但有几个问题。
例如,对于我的测试,我提供了实际的电子邮件,例如johndoe@hotmail.com
但是当我的mysitecustomerfeedback@hotmail.com
Hotmail帐户收到电子邮件时,from
电子邮件字段已填写共享主机服务器上的默认电子邮件,或web-user234@server875.web-hosting.com
而非johndoe@hotmail.com
的默认电子邮件,正如我所期望的那样。
此外,电子邮件也被Hotmail自动放入垃圾邮件,即使它没有附件,图片或任何内容。这是一条纯文本信息。
这是一个截图:
所以我理解这个共享托管公司并不希望我使用mail()方法发送垃圾邮件,但我怎样才能将这些电子邮件发送到我的网站上?是否有mail()的替换方法?
答案 0 :(得分:0)
您可以使用PHPMailer。
示例:
$mail = new PHPMailer;
$mail->isSMTP();
// You can use the SMTP host/auth details
// supplied by your personal email provider.
$mail->SMTPAuth = true;
$mail->Host = 'smtp.example.com';
$mail->Username = 'myUsername';
$mail->Password = 'myPassword';
$mail->setFrom('my@example.com');
$mail->addAddress('to@example.com');
$mail->Subject = 'A subject.';
$mail->Body = 'A message.';
$mail->send();
由于您使用hotmail / gmail或您使用的任何电子邮件服务器进行身份验证,收件人将收到该电子邮件,就像您使用自己喜欢的电子邮件客户端(这是一个PHP电子邮件客户端)发送的那样。