Email SMTP设置在本地主机上工作,但在服务器上它不使用PHPMailer

Email SMTP设置在本地主机上工作,但在服务器上它不使用PHPMailer,email,yii,phpmailer,Email,Yii,Phpmailer,这就是我面临的问题 本地主机 使用SMTP设置测试邮件是否正常工作 使用上述smtp设置创建新用户邮件的工作 服务器 使用SMTP设置测试邮件是否正常工作 使用上述smtp设置创建新用户邮件无效 我在两种情况下都回显了邮件smtp设置,它们完全相同。我得到的错误是 SMTP->错误:无法连接到服务器:php\u网络\u getaddresses: getaddrinfo失败:名称或服务未知0 SMTP连接 失败了 任何建议都会有帮助 我进一步调试它。事实证明,这种行为很古怪 if (isset(

这就是我面临的问题

本地主机

使用SMTP设置测试邮件是否正常工作 使用上述smtp设置创建新用户邮件的工作 服务器

使用SMTP设置测试邮件是否正常工作 使用上述smtp设置创建新用户邮件无效 我在两种情况下都回显了邮件smtp设置,它们完全相同。我得到的错误是

SMTP->错误:无法连接到服务器:php\u网络\u 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;
        }
    }
如果我在UserUtil::validateAndSaveUserData$model、$\u POST中对调用进行注释,它就可以正常工作。在函数中,我使用Yii框架验证和保存模型。我进一步调试了这个函数。我在系统中有以下关系

用户只有一个人 用户有一个地址
因此,在上面的调用中,如果我对$model->address->attributes或$model->address->validate或$model->address->save的地址部分进行注释,它就可以正常工作。地址的保存功能工作正常。没有与此相关的问题。

您可以从开始。听起来像是DNS问题。这是验证码规则的问题,用于检查GD要求,这破坏了流程。我不太明白为什么?当我发送测试电子邮件时,不会调用该选项。现在至少我可以继续了。