邮件从其他电子邮件地址发送

时间:2015-11-04 08:32:43

标签: php email smtp gmail

我正面临这样的问题,即邮件将作为不同的电子邮件发送而不是指定的电子邮件。

                    $from_name = 'send';
                    $from = 'send@test.com';
                    $to = 'receive@test.com';
                    $to_name = 'receive';
                    $also_to = 'cc@test.com';
                    $also_to_name = 'cc';
                    $message = 'Dear receive Thank you for the booking';
                    $message .= '<br><br>'.$homepage;
                    $mail = new PHPMailer();
                    $mail->SMTPDebug  = 0;
                    $mail->IsSMTP();    
                    $mail->Port = 465;
                    $mail->Host = "ssl://smtp.gmail.com";
                    $mail->SMTPAuth = true;
                    $mail->Username = 'send1@test.com';
                    $mail->Password = ******;

                    $mail->SetFrom($from,$from_name );
                    $mail->AddReplyTo($from,$from_name );
                    $mail->Subject  = 'Booking Details';
                    $mail->MsgHTML($message);
                    $mail->AddAddress($to,$to_name);
                    $mail->AddCC($also_to,$also_to_name);

当我使用此代码发送邮件时,邮件的名称为“发送”,但不会发送“send@test.com”电子邮件地址,而是从“send - &gt; send1@test.com”发送,而不是发送 - &GT; send@test.com。 上面我提到了我使用过的smtp细节。当我改变时:

                    $mail->Username = 'send@test.com';
                    $mail->Password = ******;

邮件不会通过任何电子邮件地址。我希望这对你们来说已经足够清楚,我将不胜感激任何帮助。谢谢

3 个答案:

答案 0 :(得分:1)

$mail->Username = send1@test.com;

这需要引用如下:

$mail->Username = "send1@test.com";

检查这是否可以解决您的问题?

如果没有尝试将debug设置为true $mail->SMTPDebug = 1;

并查看实际发送到gmail服务器的内容

默认情况下,gmail会使用该帐户的电子邮件地址

参考:How to change from-address when using gmail smtp server

答案 1 :(得分:0)

看看这个:https://github.com/elastic/elasticsearch-net/issues/456

  

$来自公共根@ localhost设置消息的发件人电子邮件地址

  

$ FromName public Root User设置消息的From名称

所以你想要特别添加以下内容:

$mail->From = $from;
$mail->FromName= $from_name;

答案 2 :(得分:-1)

您必须调用setFrom方法来设置发件人的邮件地址和名称:

$mail->SetFrom('send@test.com', 'Your Name');