来自PHPMailer的动态发送器
我在我的应用程序中使用phpmailer,我希望它能被多个用户使用,但不改变smtp服务器。这是我想做的来自PHPMailer的动态发送器,php,email,phpmailer,sender,Php,Email,Phpmailer,Sender,我在我的应用程序中使用phpmailer,我希望它能被多个用户使用,但不改变smtp服务器。这是我想做的 $mail = new PHPMailer(true); $mail->SMTPDebug = 1; $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->Host = 'smtp.gmail.com'; $mail
$mail = new PHPMailer(true);
$mail->SMTPDebug = 1;
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->Host = 'smtp.gmail.com';
$mail->Username = "mygmailtestaccount@gmail.com";
$mail->Password = "pwd0";
$mail->SetFrom("myoutlooktestaccount@hotmail.com","User name test");
$to = "receiveroutlooktestaccount@hotmail.co.jp";
$mail->AddAddress($to);
$mail->Subject = "Testing PHPMailer Message";
$mail->AltBody = "Email viewer! please do no spam me !!! \n";
$mail->WordWrap = 80;
$mail->MsgHTML($body);
$mail->IsHTML(true);
if (!$mail->Send()) {
echo "im in error zone";
echo "Mailer Error: " . $mail->ErrorInfo;
}
问题是我收到的邮件发件人是gmail“mygmailtestaccount@gmail.com,但我希望我的应用程序只是一个“跳转”,无论我的SMTP提供商是什么,都可以从它发送电子邮件。您需要一个小写的s作为setFrom:
/**
* Set the From and FromName properties.
* @param string $address
* @param string $name
* @param bool $auto Whether to also set the Sender address, defaults to true
* @throws phpmailerException
* @return bool
*/
public function setFrom($address, $name = '', $auto = true)
摘自:这不会有好的结局。你基本上是在做垃圾邮件发送者正在做的事情——使用完全无关的SMTP服务器伪造发件人:地址。即使谷歌允许你设置一个
@hotmail.com
“From:”,邮件头中的回溯也会显示出谷歌的来源,不会有hotmail DKIM。我不会发垃圾邮件,我会建立一个商业活动网站,让用户创建自己的电子邮件,并与他们的电子邮件一起发送,不是我的。我没说你在发垃圾邮件,但本质上和发垃圾邮件完全一样。使用“smtp.example.com”伪造来自其他域(如hotmail)的电子邮件。那么如何创建动态发件人?使用单一SMTP服务器和帐户?不管你想用什么方式,我只是说你的电子邮件很可能会被当作垃圾邮件处理,因为你的服务器不会成为你发送邮件的官方“来源”。