当我尝试通过表单发送带有PHPMailer的邮件时,它在localhost服务器上工作得很好,但在实时服务器上我收到很多错误。
我解决了大部分问题,除了一个我无法解决的问题。
在实时服务器上,当我提交表单时,服务器运行了很长时间,然后表单消失,没有发送电子邮件。
我的代码:
<?php
require("PHPMailer/src/PHPMailer.php");
require("PHPMailer/src/SMTP.php");
if(!isset($_POST['name']) AND !isset($_POST['mail']) AND !isset($_POST['subjet']) AND !isset($_POST['message'])){
echo '<form method="post" action="contact.php">';
echo '<p><label for="name">Your name</label></p>';
echo '<p><input type="name" name="name" id="name" maxlength="50" placeholder="Name" autofocus required/></p>';
echo '<p><label for="mail">Your e-mail address</label></p>';
echo '<p><input type="email" name="email" id="email" maxlength="250" placeholder="mail@mail.com" required/></p>';
echo '<p><label for="subjet">Sujet</label></p>';
echo '<p><input type="text" name="subject" id="subject" maxlength="250" placeholder="Subject"/></p>';
echo '<p><label for="message">Your message</label></p>';
echo '<p><textarea name="message" id="message" maxlength="2000" required></textarea></p>';
echo '<p><input type="submit" value="Send"/></p>';
echo '</form>';
}elseif(isset($_POST['name']) AND $_POST['name']!=NULL
AND isset($_POST['email']) AND $_POST['email']!=NULL
AND isset($_POST['subject'])
AND isset($_POST['message']) AND $_POST['message']!=NULL{
if($_POST['subject']!=NULL){
$subject=htmlspecialchars($_POST['subject']);
}
elseif($_POST['subject']==NULL){
$subject='No title';
}
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 2; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->IsHTML(true);
$mail->Username = "xxx@gmail.xxx";
$mail->Password = "xxx";
$mail->SetFrom(htmlspecialchars($_POST['email']), htmlspecialchars($_POST['name']));
$mail->AddAddress('xxx@gmail.com', 'First Name Last Name');
$mail->Subject = $subject;
$mail->MsgHTML(htmlspecialchars($_POST['message']));
if(!$mail->Send()) {
echo 'Erreur : ' . $mail->ErrorInfo;
} else {
echo '<script>
alert("Sent!");
window.location.replace("contact.php");
</script>';
}
}
?>
我尝试了不同的SMTP配置,我在PHPMailer GitHub上发布了最新帖子,但我找不到答案,我迷路了。
发布于 2018-09-03 10:57:15
如果你想要垃圾邮件,请。但是之后不要抱怨过它太复杂了。谷歌为
致CCC.de的学分
但也许这只是一次小旅行而你的问题就在别的地方。请更多信息。
https://stackoverflow.com/questions/-100002536
复制相似问题