与其他服务器发送电子邮件问题

时间:2013-10-07 12:04:39

标签: php phpmailer

我正面临着我正在探索的电子邮件发送脚本的一些问题。

 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

    但是当我发送邮件到hotmail如xyz@hotmail.com或xyz@live.com时,它会转到垃圾文件夹。应该是什么问题?此外,当我尝试在我的公司服务器发送电子邮件,如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) (信封来自) 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:&lt; 55932ee6e029216dc42c4ba45cb93b56.squirrel@www.xyz.com>     日期:星期一,2013年10月7日18:23:55 +0700     主题:从网络邮件测试      来自:no-reply@xyz.com     致:kajal@xyztechnologies.com     用户代理:SquirrelMail / 1.4.22     MIME版本:1.0     Content-Type:text / plain; charset = iso-8859-1     内容传输编码:8位     X优先级:3(正常)     重要性:正常

    TEsst2
    

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

2 个答案:

答案 0 :(得分:0)

通常这与你正在使用的邮件服务器和协议有关......

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

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

答案 1 :(得分:0)

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

这样可行,因为它将电子邮件标识为已从您的域发送。 $ headers [] ='来自:有人也许你';

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