首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >可以使用localhost发送带有PHPMailer的邮件,但不能从服务器发送

可以使用localhost发送带有PHPMailer的邮件,但不能从服务器发送
EN

Stack Overflow用户
提问于 2018-09-03 01:37:16
回答 1查看 0关注 0票数 0

当我尝试通过表单发送带有PHPMailer的邮件时,它在localhost服务器上工作得很好,但在实时服务器上我收到很多错误。

我解决了大部分问题,除了一个我无法解决的问题。

在实时服务器上,当我提交表单时,服务器运行了很长时间,然后表单消失,没有发送电子邮件。

我的代码:

代码语言:javascript
复制
<?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上发布了最新帖子,但我找不到答案,我迷路了。

EN

回答 1

Stack Overflow用户

发布于 2018-09-03 10:57:15

如果你想要垃圾邮件,请。但是之后不要抱怨过它太复杂了。谷歌为

  • MSA
  • AMTA
  • MTA
  • Rnta
  • MDA
  • IMAP
  • POP3
  • TLS 1.2
  • DNS
  • MX记录
  • FQDN
  • SPF
  • DKI
  • DMARC
  • DANE
  • 黑名单
  • 灰名单
  • 白名单
  • 缓送
  • 早期的Taker
  • 电子邮件标题
  • 过虑
  • ClamAV的/ clamd的
  • Pyzor
  • 剃刀
  • Amavizd新
  • Roundcube
  • iRedMail。

CCC.de的学分

但也许这只是一次小旅行而你的问题就在别的地方。请更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档