无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件

新手上路,请多包涵

我正在使用 codeigniter

我在实时服务器上执行了代码。使用 print_debugger() 得到以下错误

无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。

 public function sendEnquiry() {
            $this->load->library('email');
            $name = $this->input->post("fname");
            $cemail = $this->input->post("email");
            $pno = $this->input->post("phone");
            $message = $this->input->post("message");
            $config['protocol']    = 'smtp';
            $config['smtp_host']    = 'ssl://mail.gatewaykhobar.com';
            $config['smtp_port']    = '465';
            $config['smtp_timeout'] = '7';
            $config['smtp_user']    = '***********';
            $config['smtp_pass']    = '***********';
            $config['charset']    = 'utf-8';
            $config['newline']    = "\r\n";
            $config['mailtype'] = 'text'; // or html
            $config['validation'] = FALSE;

            $this->email->initialize($config);
            $this->email->from('info@gatewaykhobar.com','Gateway Restaurent Contact');
            $this->email->to($cemail);
            $this->email->subject('Gateway Restaurent Contact Enquiry');

           $this->email->message($message);
            $send = $this->email->send();
            if($send) {
                echo json_encode("send");
            } else {
                $error = $this->email->print_debugger(array('headers'));
                echo json_encode($error);
            }

        }

原文由 Muhammed Anas U 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 657
2 个回答

smtp_port 从 465 更改为 587。

确保 $config['newline'] = "\r\n"; 是双引号而不是单引号。

原文由 katwekibs 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于发现此错误的其他人,已经设置了其他地方提到的设置(甚至是 Codeigniter 4)但仍然出现错误,测试正在发生的事情的一种方法是从服务器控制台并使用 telnet。例如:

telnet smtp.yourprovider.com 587

然后针对不同的提供者进行测试,看看是否可行。如果您的提供者没有,但另一个提供者有,那么问题出在您的提供者身上,您应该联系他们。如果两者都无法连接,那么您应该与您的虚拟主机交谈。

原文由 Antony 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题