使用 localhost 在 php 中发送电子邮件
Posted
技术标签:
【中文标题】使用 localhost 在 php 中发送电子邮件【英文标题】:Sending email in php using localhost 【发布时间】:2017-06-19 11:57:10 【问题描述】:我在从 localhost 发送电子邮件时遇到了一些问题,需要您的帮助。这是我收到的错误消息:
警告:mail(): "sendmail_from" 未在 php.ini 或自定义 "From:" 中设置 第 22 行的 C:\xampp\htdocs\email\send_mail.php 中缺少标头。
请帮忙
【问题讨论】:
您无法从localhost
发送邮件。您必须使用具有适当设置的服务器。
@Harish Kommuri;您可以使用phpmailer
从localhost
发送邮件
请勿发布代码图片。正确发布并格式化
@RamaLingam 即使使用mail()
你仍然可以,你只需要以 ryt 方式配置它。
@Masivuye;谢谢你的回答。
【参考方案1】:
您的邮件格式错误
mail($email_address,$subject,$msg,$header);
【讨论】:
【参考方案2】:要使用 localhost 发送电子邮件,您需要配置 localhost 以发送电子邮件。
以下步骤是使用带有xampp
和sendmail
的localhost发送电子邮件
您可以使用 sendmail 包从本地主机发送邮件,sendmail 包在 XAMPP 中内置。因此,如果您使用的是 XAMPP,那么您可以轻松地从 localhost 发送邮件。
例如,您可以配置C:\xampp\php\php.ini
和c:\xampp\sendmail\sendmail.ini
让gmail 发送邮件。
在C:\xampp\php\php.ini find extension=php_openssl.dll
中并从该行的开头删除分号以使SSL 为本地主机的gmail 工作。
在php.ini
文件中找到[mail function]
并更改
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
将 sendmail.ini 中的所有现有代码替换为以下代码
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=your-gmail-id@gmail.com
auth_password=your-gmail-password
force_sender=your-gmail-id@gmail.com
Then you are done :)
记得使用 XAMMP 控制面板重新启动服务器,以使更改生效。快乐编码:)
顺便说一下你的邮件功能不正确
应该是
mail($to,$subject,$message,$headers);
【讨论】:
以上是关于使用 localhost 在 php 中发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
apache_conf 使用PHPMailer在PHP中发送电子邮件
在测试 php 以在 xampp 中发送电子邮件验证时遇到问题