PHPMailer赢得';无法使用Yahoo邮件地址(与$Mail->;AddCC方法有关的问题)

PHPMailer赢得';无法使用Yahoo邮件地址(与$Mail->;AddCC方法有关的问题),php,email,phpmailer,Php,Email,Phpmailer,我对PHPMailer有点困惑。我试图在一个网站上使用它,在这个网站上,一个人填写一张表格,包括他们的姓名、电子邮件信息 我试图将这些信息通过电子邮件发送给我,并将一份副本发送给那个人——因此使用了$mail->addCC($email)方法 然而,每次我尝试从雅虎的电子邮件地址发送测试电子邮件时,它都不起作用。它确实与gmail地址配合使用 编辑-当我说它不适用于雅虎的电子邮件地址时,从技术上讲,我得到的是来自他们的“邮件传递失败”的电子邮件 我使用$mail->addCC($email)方法

我对PHPMailer有点困惑。我试图在一个网站上使用它,在这个网站上,一个人填写一张表格,包括他们的姓名、电子邮件信息

我试图将这些信息通过电子邮件发送给我,并将一份副本发送给那个人——因此使用了
$mail->addCC($email)
方法

然而,每次我尝试从雅虎的电子邮件地址发送测试电子邮件时,它都不起作用。它确实与gmail地址配合使用

编辑-当我说它不适用于雅虎的电子邮件地址时,从技术上讲,我得到的是来自他们的“邮件传递失败”的电子邮件

我使用
$mail->addCC($email)
方法的目的是将副本发送给用户,而发送给我的副本就是我可以回复的副本

我尝试了
$mail->addCustomHeader($email)
但这仍然会造成同样的问题,即yahoo mail不会提供它

如何使此PHPMailer工作,以便将副本发送给我和用户

另外,我是否错误地使用了这个PHPMailer表单?我对
$mail->From=$email感到困惑我目前已将其设置为来自用户的电子邮件地址,以便我可以响应它。这不对吗


将发件人设置为发件人(在本例中为Yahoo,但其他ISP也会阻止)是您的问题。接收邮件的服务器可以快速识别它没有发送邮件,一旦发送,它就会怀疑是垃圾邮件

相反,将From设置为服务器上的某个地址(我通常使用no reply@),然后将发件人添加为reply to头

Reply To header的作用和它听起来的完全一样:当您单击“Reply”按钮时,它将填充一条新消息,并发送到该值,而不是实际的发件人

$mail->addReplyTo( $email, $first_name );
$mail->addAddress( $email, $first_name );
$mail->addAddress( 'your@email.com', 'You' );
$mail->From = 'your@email.com';
$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 = 'your@email.com';
$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( 'your@email.com', 'You' );
$mail->send();

// CLEAR REPLY TO AND RECIPIENTS 

$mail->clearReplyTos();
$mail->clearAllRecipients();

// SEND TO THE USER

$mail->addAddress( $email, $first_name );
$mail->addReplyTo( 'your@email.com', 'You' );


if(!$mail->send()) {
    header('location: url here');
} else {
    header('location: url here');
}

将发件人设置为发件人(在本例中为Yahoo,但其他ISP也会阻止)是您的问题。接收邮件的服务器可以快速识别它没有发送邮件,一旦发送,它就会怀疑是垃圾邮件

相反,将From设置为服务器上的某个地址(我通常使用no reply@),然后将发件人添加为reply to头

Reply To header的作用和它听起来的完全一样:当您单击“Reply”按钮时,它将填充一条新消息,并发送到该值,而不是实际的发件人

$mail->addReplyTo( $email, $first_name );
$mail->addAddress( $email, $first_name );
$mail->addAddress( 'your@email.com', 'You' );
$mail->From = 'your@email.com';
$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 = 'your@email.com';
$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( 'your@email.com', 'You' );
$mail->send();

// CLEAR REPLY TO AND RECIPIENTS 

$mail->clearReplyTos();
$mail->clearAllRecipients();

// SEND TO THE USER

$mail->addAddress( $email, $first_name );
$mail->addReplyTo( 'your@email.com', 'You' );


if(!$mail->send()) {
    header('location: url here');
} else {
    header('location: url here');
}

检查你的垃圾邮件过滤器?收到PHP的任何错误?@Sam,无需检查垃圾邮件过滤器。我每次都会收到来自雅虎的“邮件发送失败”消息。检查你的垃圾邮件过滤器?收到PHP的任何错误?@Sam,无需检查垃圾邮件过滤器。我每次都收到来自雅虎的“邮件发送失败”消息。我自己也这么说了。@SetSail Media,嘿,谢谢!谢谢。如果你不介意的话,这是个问题。当我测试这一点,并从我的电子邮件地址检查回复到时,它填充了用户的地址(耶!),但当我从“用户”电子邮件检查并点击回复到时,它是到用户的电子邮件地址,而不是我的。如何调整?我将更新我的答案,以显示更好的处理方法-基本上我会做的是将消息发送一次,发送给自己,清除收件人并清除回复到,添加回,发送给用户。我自己说得再好不过了。@Set-Sail Media,嘿,谢谢!谢谢。如果你不介意的话,这是个问题。当我测试这一点,并从我的电子邮件地址检查回复到时,它填充了用户的地址(耶!),但当我从“用户”电子邮件检查并点击回复到时,它是到用户的电子邮件地址,而不是我的。如何调整?我将更新我的答案,以显示更好的处理方法-基本上我会做的是将消息发送一次,发送给自己,清除收件人并清除回复到,添加回,发送给用户。