Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自PHPMailer的动态发送器_Php_Email_Phpmailer_Sender - Fatal编程技术网

来自PHPMailer的动态发送器

来自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

我在我的应用程序中使用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->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服务器和帐户?不管你想用什么方式,我只是说你的电子邮件很可能会被当作垃圾邮件处理,因为你的服务器不会成为你发送邮件的官方“来源”。