SMTP设置可以从localhost运行,但在服务器上它不适用于PHPMailer

时间:2014-10-17 19:35:17

标签: email yii phpmailer

这就是我面临的问题

本地主机

  • 使用SMTP设置测试邮件
  • 使用上述smtp设置工作的新用户创建邮件

服务器

  • 使用SMTP设置测试邮件
  • 使用上述smtp设置的新用户创建邮件不起作用

我在两种情况下都回复了邮件smtp设置,它们完全相同。我得到的错误是

  

SMTP - >错误:无法连接到服务器:php_network_getaddresses:   getaddrinfo失败:名称或服务未知(0)SMTP连接()   失败。

任何建议都会有所帮助。


我进一步调试它。这种行为结果很奇怪

if (isset($_POST['User']))
    {
        if (UserUtil::validateAndSaveUserData($model, $_POST))
        {
                $mailer   = new UiMailer();
                $mailer->setFrom('fromAddress', 'fromName');
                $mailer->setTo('toaddress');
                $mailer->setSubject('Test subject');
                $mailer->setBody('Test Body');
                $mailer->Mailer = 'smtp';
                $mailer->Username = 'username';
                $mailer->Password = 'password';
                $mailer->Host     = 'host';
                $mailer->Port     = 25;
                $mailer->SMTPAuth = true;
                $status         = $mailer->send() ? true : false;
                if($status == true)
                {
                    print "Sucess";
                }
                else
                {
                    print $mailer->ErrorInfo . "</br>";
                    print "Failuere";
                }
                exit;
        }
    }

如果我评论调用if(UserUtil :: validateAndSaveUserData($ model,$ _POST)),它可以正常工作。在功能我正在使用Yii框架验证和保存模型。我进一步调试了这个函数。我在系统中有以下关系

  • 用户有一个人
  • 用户有一个地址

所以在上面的调用中,如果我评论地址部分$ model-&gt; address-&gt;属性或$ model-&gt; address-&gt; validate或$ model-&gt; address-&gt; save() ,它工作正常。地址的保存功能工作正常。没有与之相关的问题。

0 个答案:

没有答案