2

我在下面探索的电子邮件发送脚本遇到了一些问题。

 try 
     {
       $mail->Host       = "mail.xyz.com"; // SMTP server
      $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
      $mail->SMTPAuth   = true;                  // enable SMTP authentication
      $mail->Port       = 25;                    // set the SMTP port for the GMAIL server
      $mail->Username   = "no-reply@xyz.com"; // SMTP account username
      $mail->Password   = "mypassword";        // SMTP account password*/
      $mail->SetFrom($from, $fromName);
      $mail->AddAddress($to, $toName);
      $mail->Subject = $subject;
      $mail->AddReplyTo('no-reply@xyz.com', 'xyz title');         
      $mail->AltBody = 'To view the message, please use an HTML compatible        email viewer!'; // optional - MsgHTML will create an alternate automatically
      $mail->MsgHTML($body);
      $mail->IsHTML(true); // send as HTML
      $success = $mail->Send();
    } 
    catch (phpmailerException $e)
    {
      echo $e->errorMessage(); 
    } 
    catch (Exception $e)
    {
      echo $e->getMessage(); 
    }
    return $success;

**我将此代码与 PHPMailer 一起使用来发送电子邮件,这对我来说工作正常

  • xyz@gmail.com

  • xyz@yahoo.com

  • xyz@rediff.com

    但是当我将邮件发送到 xyz@hotmail.com 或 xyz@live.com 之类的 hotmail 时,它会进入垃圾文件夹。应该是什么问题?此外,当我尝试在我的公司服务器(如 kajal@xyztechnologies.com)上发送电子邮件时,出现以下错误:**

    - - - - - - - - - - - - - - 原始信息 - - - - - - - - - - -------- 主题:邮件传递失败:将邮件返回给发件人发件人:“邮件传递系统”日期:2013 年 10 月 7 日星期一下午 6:23 收件人:no-reply@xyz.com


    此消息是由邮件传递软件自动创建的。

    您发送的邮件无法传递给一个或多个收件人。这是一个永久性错误。以下地址失败:

    kajal@xyztechnologies.com
    SMTP error from remote mail server after MAIL FROM:<no-reply@xyz.com> SIZE=1872:
    host xyztechnologies.com [173.37.185.97]:
    550 Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
    

    ------ 这是邮件的副本,包括所有标题。------

    返回路径:接收:来自 localhost ([127.0.0.1]:47913 helo=www.xyz.com) 通过机架与 esmtpa (Exim 4.80.1) (envelope-from ) id 1VT8up-0007gh-UD for kajal@xyztechnologies。 com; 2013 年 10 月 7 日星期一 18:23:55 +0700 接收:来自 122.177.170.230 ([122.177.170.230]) (代理 10.1.1.12) (SquirrelMail 认证用户 no-reply@xyz.com) 来自 www.xyz.com使用 HTTP;2013 年 10 月 7 日星期一 18:23:55 +0700 邮件 ID:<55932ee6e029216dc42c4ba45cb93b56.squirrel@www.xyz.com> 日期:2013 年 10 月 7 日星期一 18:23:55 +0700 主题:测试来自网络邮件发件人:否-回复@xyz.com 收件人:kajal@xyztechnologies.com 用户代理:SquirrelMail/1.4.22 MIME 版本:1.0 内容类型:text/plain;charset=iso-8859-1 内容传输编码:8 位 X-优先级:3(正常) 重要性:正常

    TEsst2
    

    应该是什么问题?我找不到任何解决方案。请帮我。谢谢

4

2 回答 2

0

通常,这与您使用的邮件服务器和协议有关...

使用 sendmail 通过 php 发送的邮件不必经过验证,可以匿名发送...这可能是您的电子邮件最终被夹在垃圾邮件文件夹中的原因...

我建议使用经过身份验证的 smtp 服务器来验证发件人的身份(也需要匹配 from 标头),您将有更好的机会进入收件箱。

于 2013-10-07T12:09:15.857 回答
0

您需要包含 FROM 电子邮件,并且它必须来自发送它的域,否则许多主机提供商会将其标记为垃圾邮件。

这将起作用,因为它将电子邮件标识为从您的域发送。$headers[] = '来自:有人可能是你';

这不起作用,它将被标记为垃圾邮件。$headers[] = '来自:有人可能是你';

于 2017-03-16T00:24:10.447 回答