【问题标题】:Mail getting sent from a different email address从不同的电子邮件地址发送邮件
【发布时间】:2015-11-04 16:54:01
【问题描述】:

我遇到了这个问题,邮件作为另一封电子邮件而不是指定的电子邮件发送。

                    $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”,但不是“send@test.com”电子邮件地址,它是从“send -> send1@test.com”而不是 send ->发送@test.com。 上面我已经提到了我使用的 smtp 详细信息。当我改变时:

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

邮件不会发送到任何电子邮件地址。我希望这对你们来说足够清楚,我将不胜感激。谢谢

【问题讨论】:

    标签: php email smtp gmail


    【解决方案1】:

    $mail-&gt;Username = send1@test.com;

    这需要用引号括起来:

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

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

    如果不尝试将 debug 设置为 true $mail-&gt;SMTPDebug = 1;

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

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

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

    【讨论】:

    • 很抱歉,如果我添加引号,邮件仍然不会发送
    • 能否请您粘贴收到的原始电子邮件标头?
    • send 其中 send 是给定的名称,send1@test.com 是错误的电子邮件地址,它应该是 send@test.com
    【解决方案2】:

    看看这个:http://phpmailer.worxware.com/index.php?pg=properties

    $From public root@localhost 设置消息的发件人电子邮件地址

    $FromName 公共根用户设置消息的发件人名称

    所以你要专门添加以下内容:

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

    【讨论】:

    • 所以将class.phpmailer.php中的这个改成上面的会纠正吗?这意味着我必须在 phpmailer 文件中包含文件名,对吗?如果我将 php 邮件程序中的这些值更改为我需要的名称和 ID 怎么办?
    • 我不知道您上面显示的脚本的名称。只需在添加其余参数的同一位置添加这两行并尝试一下。
    • 好的,我会试试的。 $mail->SetFrom() 函数呢?这仍然是必需的还是我将这些值包含在 $mail->SetFrom 函数中?
    • 我试过发件人仍然在 smtp 用户名中显示相同的电子邮件 ID
    【解决方案3】:

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

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

    【讨论】:

    • $mail->SetFrom($from,$from_name );我在上面的代码中添加了变量。给出实际值会有帮助吗?
    猜你喜欢
    • 2016-05-22
    • 2012-06-26
    • 2018-11-06
    • 2011-11-18
    • 2016-11-04
    • 2018-07-10
    • 2018-07-02
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多