为了账号安全,请及时绑定邮箱和手机立即绑定

如何解决服务器 filezilla 上的联系表单(phpmailer)上的错误?

如何解决服务器 filezilla 上的联系表单(phpmailer)上的错误?

PHP
慕斯709654 2022-01-08 16:55:36
我正在使用 PHPmailer 作为我的联系表,当我用 XAMPP 打开我的网站时它可以工作,但是当我将网站上传到在线服务器(filezilla)时,联系表显示错误。use PHPMailer\PHPMailer\PHPMailer;use PHPMailer\PHPMailer\Exception;require 'vendor/autoload.php';$error = '';$name = '';$email = '';$subject = '';$message = '';function clean_text($string){ $string = trim($string); $string = stripslashes($string); $string = htmlspecialchars($string); return $string;}if(isset($_POST["submit"])){ if(empty($_POST["name"])) {  $error .= '<p><label class="text-danger">*Por Favor Insira o seu Nome</label></p>'; } else {  $name = clean_text($_POST["name"]);  if(!preg_match("/^[a-zA-Z ]*$/",$name))  {   $error .= '<p><label class="text-danger">Apenas letras e espaços em branco sao permitidos</label></p>';  } } if(empty($_POST["email"])) {  $error .= '<p><label class="text-danger">*Por Favor Insira o seu Email</label></p>'; } else {  $email = clean_text($_POST["email"]);  if(!filter_var($email, FILTER_VALIDATE_EMAIL))  {   $error .= '<p><label class="text-danger">Formato de email inválido</label></p>';  } } if(empty($_POST["subject"])) {  $error .= '<p><label class="text-danger">*Por Favor Insira o seu Assunto</label></p>'; } else {  $subject = clean_text($_POST["subject"]); } if(empty($_POST["message"])) {  $error .= '<p><label class="text-danger">Por Favor Insira a sua Mensagem</label></p>'; }显示错误:致命错误:未捕获的 PHPMailer\PHPMailer\Exception:SMTP 连接()失败。https://github.com/PHPMailer/PHPMailer/wiki//home1/carvalho/public_html/vendor/phpmailer/phpmailer/src/PHPMailer.php:1775中的疑难解答:#0 /home1/carvalho/public_html/vendor/ phpmailer/phpmailer/src/PHPMailer.php(1516): PHPMailer\PHPMailer\PHPMailer->smtpSend('Date: Thu, 12 S...', '\r\n\r\n ...') #1 /home1/carvalho/public_html/vendor/phpmailer/phpmailer/src/PHPMailer.php(1352): PHPMailer\PHPMailer\PHPMailer->postSend() #2 /home1/carvalho/public_html/contact2.php(119): PHPMailer\ PHPMailer\PHPMailer->send() #3 {main} 在第 1775 行的 /home1/carvalho/public_html/vendor/phpmailer/phpmailer/src/PHPMailer.php 中抛出
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

如果您确定凭据正确,请检查 PORT 和 SMTP 安全,因为:端口 25 不需要 ssl / tls 支持端口 465 用于 ssl 端口 587 用于 tls


像这样修复您的代码:


$mail = new PHPMailer(true);

$mail->CharSet = "UTF-8";


$mail->IsSMTP();        


$mail->Host = 'smtp.sapo.pt';  

$mail->Port = 587; // this for "tls" connection  

$mail->SMTPAuth = true;      

$mail->Username = '...@sapo.pt';


$mail->Password = '*****';  


$mail->SMTPSecure = 'tls'; // this require 587    

$mail->From = $_POST["email"];    

$mail->FromName = $_POST["name"];   

$mail->addAddress('....@sapo.pt ', 'namecompany');


$mail->WordWrap = 50;       

$mail->IsHTML(true);          

$mail->Subject = $_POST["subject"];


查看完整回答
反对 回复 2022-01-08
?
白衣非少年

TA贡献1155条经验 获得超0个赞

您的 SMTP 凭据在生产服务器上不同。您只需要获得有效的凭据


查看完整回答
反对 回复 2022-01-08
  • 2 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信