我正在使用 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"];
- 2 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消