PHPMailer无法使用Yahoo Mail地址(带有$ mail-> AddCC方法的问题)

用户273072545345

我对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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章