我对PHPMailer有点困惑。我试图在一个网站上使用它,一个人在其中填写表格,并包括他们的姓名,电子邮件信息。
我试图让这些信息既通过电子邮件发送给我,又通过电子邮件发送给该人-因此使用了$mail->addCC($email)
方法。
但是,每次我尝试从Yahoo电子邮件地址发送测试电子邮件时,它都无法正常工作。它确实可以使用Gmail地址。
编辑-当我说它不适用于yahoo电子邮件地址时,从技术上来说,我得到的是来自他们的“邮件传递失败”电子邮件。
我拥有$mail->addCC($email)
方法的目的是将副本发送给用户,而发送给我的副本是我可以回复的副本。
我已经尝试过,$mail->addCustomHeader($email);
但是仍然会产生相同的问题,即Yahoo Mail无法传送它。
如何使PHPMailer正常工作,以便将副本发送给我和用户?
另外,我是否错误地使用了此PHPMailer表单?我对$mail->From = $email;
目前将其设置为来自用户的电子邮件地址感到困惑,因此我可以对其进行回复。那是错的吗?
$first_name = $_POST['first-name'];
$last_name = $_POST['last-name'];
$email = $_POST['email'];
$message = nl2br($_POST['message']);
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'host info'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user info'; // SMTP username
$mail->Password = 'pw'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;
$mail->From = $email;
$mail->FromName = $first_name;
$mail->addAddress('my email address'); // Add a recipient
$mail->addCC($email); // Add a recipient
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Hotel Room Request';
$mail->Body = $message;
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->send()) {
header('location: url here');
} else {
header('location: url here');
}
将“发件人”设置为发件人(在这种情况下为Yahoo,但其他ISP也将阻止)是您的问题。接收邮件服务器可以快速确定它尚未发送邮件-发送邮件后,它就怀疑是垃圾邮件。
而是将“发件人”设置为服务器上的某个地址(no-reply @是我通常使用的地址),然后将发件人添加为“ Reply-To”标头。
Reply-To标头确实听起来很像:当您单击“ Reply”按钮时,它将填充一条发送到该值的新邮件,而不是实际的发件人。
$mail->addReplyTo( $email, $first_name );
$mail->addAddress( $email, $first_name );
$mail->addAddress( '[email protected]', 'You' );
$mail->From = '[email protected]';
$mail->FromName = $first_name;
为了回应您以后的评论,关于将回复作为自己用户的地址,我将按照以下方式处理:
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'host info'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user info'; // SMTP username
$mail->Password = 'pw'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;
$mail->From = '[email protected]';
$mail->FromName = $first_name;
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Hotel Room Request';
$mail->Body = $message;
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
// SEND TO YOURSELF
$mail->addReplyTo( $email, $first_name );
$mail->addAddress( '[email protected]', 'You' );
$mail->send();
// CLEAR REPLY TO AND RECIPIENTS
$mail->clearReplyTos();
$mail->clearAllRecipients();
// SEND TO THE USER
$mail->addAddress( $email, $first_name );
$mail->addReplyTo( '[email protected]', 'You' );
if(!$mail->send()) {
header('location: url here');
} else {
header('location: url here');
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句