当前位置: 首页 > 知识库问答 >
问题:

PHP邮件SMTP不工作

楚皓君
2023-03-14

我已经配置了php.ini和sendmail.iniXAMPP发送电子邮件和它的工作罚款。现在,当我改变PHP中的代码使用SMTP它不工作...它使用相同的主机,相同的smtpSecurity,相同的端口,相同的电子邮件作为XAMPP和它不工作...

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=testowemailer93@gmail.com
auth_password=1234
force_sender=testowemailer93@gmail.com
php.ini
[mail function]
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = testowemailer93@gmail.com
sendmail_path = "\"D:\xampp\sendmail\sendmail.exe\" -t"
For Win32 only.
http://php.net/sendmail-from
sendmail_from = testowemailer93@gmail.com

和我的php代码

<?php
$mail = new PHPMailer;
$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
$mail->Port = 587;
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'testowemailer93@gmail.com';                 // SMTP username
$mail->Password = '1234';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->setLanguage('pl', './vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php');
$mail->setFrom("testowemailer93@gmail.com");
$mail->addAddress('xx.yyy@gmail.com');     // Add a recipient // Name is optional
$mail->IsHTML(true);
$mail->Subject = "Prośba o dostęp demo";
$mail->Body = "<p>Wysłano z formularza kontaktowego na stronie bhp.xyz.pl.</p>
</p>";
if(!$mail->Send()){
    echo "\n"."Mailer Error: " . $mail->ErrorInfo;
}
else{
    echo "Message sent!";
}
?>

错误:服务器-

共有2个答案

李康安
2023-03-14

我明白了。。。在这样的事情上花了太多的时间。。我在XAMPP中添加了虚拟主机:

<VirtualHost *:80>
 ServerAdmin webmaster@localhost

 DocumentRoot "D:/xampp/htdocs/BHP"
 ServerName bhpsmart.com
 SSLEngine on
 SSLCertificateFile "conf/ssl.crt/server.crt"
 SSLCertificateKeyFile "conf/ssl.key/server.key"
 <Directory "D:/xampp/htdocs/BHP">
  Options All
  AllowOverride All
  Order allow,deny
  Allow from all
  Require all granted
 </Directory>

 ErrorLog logs/platforma-error.log
 LogLevel info
 CustomLog logs/platforma.log combined
</VirtualHost>

它们的要点是:

SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"

现在它工作正常了。

荣俊杰
2023-03-14

这实际上是PHPStorm中的一个bug,我在这里报告了这个bug。

PHPMailer 6.0分支中有一个自动解决方案,但是您应该能够通过将Hostname属性设置为有效的属性来实现,例如:

$mail->Hostname = 'localhost.localdomain';

Hostname属性是在HELO/EHLO命令中呈现给Host属性中的服务器的名称-不要混淆这两者!

 类似资料:
  • SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录

  • 你好;我正在使用s.o上给出的答案进行smtp邮件;(如果搜索,相信这是第一个结果) 但我仍然没有收到邮件;任何人都可以帮助发现任何错误或提供替代解决方案吗?我已经使用了内置的邮件程序,但它没有被认证,请参阅 -

  • SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。 首先,我们来构造一个最简单的纯文本邮件: from email.mime.text import MIMEText msg = MIMEText('hello, send

  • SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。 首先,我们来构造一个最简单的纯文本邮件: from email.mime.text import MIMEText msg = MIMEText('hello, send

  • 本文向大家介绍PHP实现SMTP邮件的发送实例,包括了PHP实现SMTP邮件的发送实例的使用技巧和注意事项,需要的朋友参考一下 当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你! php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题。本博客后台,当博主回复留言时候,会自动给网友发一封有新回复提示的邮件也是用的本文这个方法实现的

  • 问题内容: 几天前使用时,它已经正常工作了。 但是现在不起作用了。而且我不知道问题出在哪里。 它显示“邮件已发送”。 我没有碰过Apache或这段代码中的任何内容。我已经在空PHP文件中测试了代码,结果相同。如何调试此问题? 问题答案: 可能是电子邮件发送正常,但被垃圾邮件过滤器捕获了吗?如果可以的话,请允许我交叉发表自己的看法: 一些要点(假设mail()返回true,并且错误日志中没有错误):