是否可以使用phpmailer中的gmails的smtp从yahoo的电子邮件地址发送电子邮件

时间:2016-08-12 15:17:25

标签: php email phpmailer

<?php

require ("PHPMailer-master/PHPMailerAutoload.php");

$mail = new PHPMailer;

if(isset($_POST['submit']))
{
    $email_query = "select email1,email2 from tbl_contacts where id = '1'";
    $query_result = mysql_query($email_query);
    $value = mysql_fetch_array($query_result);
    $primary_email = $value['email1'];
    $CC = $value['email2']; 

    $name = $_POST['name'];
    $email = $_POST['email'];
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    $mail->IsSendmail();                                      // Set mailer to use SMTP
    $mail->Host = "smtp.google.com";  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = $email;                 // SMTP username
    //$mail->Password = 'password';                           // SMTP password
    $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 465;                                    // TCP port to connect to

    $mail->setFrom($email, $name);
    //$mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
    $mail->addAddress($primary_email);               // Name is optional
    $mail->addReplyTo($email, '');
    $mail->addCC($CC);
    //$mail->addBCC('bcc@example.com');

    //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
    $mail->isHTML(true);                                  // Set email format to HTML

    $mail->Subject = $subject;
    $mail->Body    = $message;
    $mail->AltBody = $message;

    if(!$mail->send()) {
        echo 'Message could not be sent.';
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent';
        redirect('/contact.php?message=Your+Message+Has+Been+Sent!', 'location');
    }
}
?>

我正在使用gmail的smtp,如果我发送带有Gmail帐户的电子邮件,但是当我发送带有yahoo帐户的电子邮件时,它会显示成功消息,但消息无法传递。是否可以使用gmail的smtp从yahoo的电子邮件发送电子邮件?如果是,我该怎么办?如果没有,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

一般来说,

避免声明不正确的身份。

这可能来自技术方面;然而在2016年,大多数电子邮件系统倾向于通过使用multip来保护自己。技术 - 如SPF,DKIM和DMARC,用于发送和评估收到的电子邮件。

如果对于越来越多的电子邮件系统和ESP来说都是如此,不难想象像雅虎,GMAIL和其他人那样的ESP巨头正在表达他们对错误声明的身份的仇恨(标记为垃圾邮件,在SMTP握手级别拒绝,默默地丢弃......)。

在您显示成功消息的情况下,仅表示您的邮件是在MTA端收到的,以便进一步处理,而不是关于它的未来。