<?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的电子邮件发送电子邮件?如果是,我该怎么办?如果没有,我该如何解决这个问题?
答案 0 :(得分:0)
一般来说,
避免声明不正确的身份。
这可能来自技术方面;然而在2016年,大多数电子邮件系统倾向于通过使用multip来保护自己。技术 - 如SPF,DKIM和DMARC,用于发送和评估收到的电子邮件。
如果对于越来越多的电子邮件系统和ESP来说都是如此,不难想象像雅虎,GMAIL和其他人那样的ESP巨头正在表达他们对错误声明的身份的仇恨(标记为垃圾邮件,在SMTP握手级别拒绝,默默地丢弃......)。
在您显示成功消息的情况下,仅表示您的邮件是在MTA端收到的,以便进一步处理,而不是关于它的未来。