【问题标题】:Is sending email from yahoo's email address possible using gmails's smtp in phpmailer是否可以在 phpmailer 中使用 gmails 的 smtp 从 yahoo 的电子邮件地址发送电子邮件
【发布时间】:2016-08-12 15:17:25
【问题描述】:
<?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 的电子邮件发送电子邮件?如果是,我该怎么做?如果没有,我该如何解决这个问题?

【问题讨论】:

  • 不可能。电子邮件标题可由用户编辑。您基本上可以从您喜欢的任何电子邮件地址发送电子邮件。从技术上讲,您甚至可以从根本没有地址发送电子邮件。 GMail 不希望他们的用户滥用此功能,因此他们要求您提供您的 GMail 凭据。这样他们就可以确保您只能从您的 GMail 地址发送邮件。您需要自己的邮件服务器来规避这个问题,或者检查 Yahoo 是否有自己的 SMTP 设置并使用这些设置。

标签: php email phpmailer


【解决方案1】:

一般来说,

避免声明不正确的身份。

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

如果这适用于越来越多的电子邮件系统和 ESP,那么不难想象雅虎、GMAIL 等 ESP 巨头正在做什么来表达他们对错误声明身份的仇恨(标记为垃圾邮件,在 SMTP 握手级别拒绝,默默地丢弃...)。


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 2020-06-08
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    相关资源
    最近更新 更多