如何在 php 中通过 gmail 使用 mail()

Posted

技术标签:

【中文标题】如何在 php 中通过 gmail 使用 mail()【英文标题】:How to use mail() in php with gmail 【发布时间】:2016-01-06 20:20:24 【问题描述】:

警告:mail(): 无法在“localhost”端口 25 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或在 C:\xampp\htdocs\series\ 中使用 ini_set()第 8 行的 mailoutput\index.php 发送电子邮件时出错。

我在运行 php 代码时收到此消息。我在一个文件夹中有这个,我正在从 thenewboston 对 php 进行 tut。这是我的文件所在的位置 C:\xampp\htdocs\series\mailoutput\index.php

这是我正在运行的代码。

<?php
$to = 'myemail@gmail.com';
$subject = 'This is an email';
$body = 'This is a test email\n\nHope you got it.';
$headers = 'From: someone@gmail.com';


if (mail($to, $subject, $body, $headers))
  
    echo 'Email has been sent. '.$to;
  
  else
  
    echo 'There was an error sending the email.';
  
 ?>

我的 php.ini 文件有这些设置

SMTP = ssl://stmp.gmail.com
smtp_port = 465
sendmail_from = myemail@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

在我的 sendmail.ini 文件中,这些是设置

smtp_server=ssl://stmp.gmail.com
smtp_port=465
auth_username=myemail@gmail.com
auth_password=(mypassword)
force_sender=myemail@gmail.com

不知道为什么这不起作用,或者是否有更简单的方法来完成这项工作。

【问题讨论】:

不要使用 mail()。使用 phpmailer 或 swiftmailer “不要做卡,做个笨蛋” - @Dagon 这些可以免费使用吗?我只是为我正在上的一门课做这件事,不需要在大学上花更多的钱,哈哈。 【参考方案1】:

首先,您在这里拼错了主机名:

smtp_server=ssl://stmp.gmail.com
                  ^^^^

主机名是 smtp.gmail.com,而不是 stmp.gmail.com。

话虽如此,不要使用 GMail 从您的 Web 应用程序发送邮件。 GMail 不适合此类用途 - 您每天只能从 GMail 帐户发送大约 500 封邮件,任何与来自此类帐户的批量电子邮件相关的垃圾邮件投诉都将受到非常严厉的处理.

如果您想从没有自己的邮件服务器的服务器发送电子邮件,请使用专用的邮件递送服务,例如 Amazon SES、Sendgrid、Mailgun、

【讨论】:

这些是免费的吗?如果没有,那里有免费的吗? Amazon SES 为 EC2 用户提供免费套餐。数量少时也非常便宜(例如,每发送一千条消息 0.10 美元)。 谢谢!这很有帮助

以上是关于如何在 php 中通过 gmail 使用 mail()的主要内容,如果未能解决你的问题,请参考以下文章

在 JAVA 中通过 gmail smtp 服务器发送电子邮件

在 MongoDB 中通过 PHP 使用 NotIn 和正则表达式

在 Visual Studio 中通过 C# (Selenium) 自动登录 Gmail

如何在Linux命令行中通过SMTP服务器发送电子邮件

PHP mail()表单发送到GMAIL垃圾邮件[重复]

我如何使用 php 发送电子邮件,包括 mail.php 文件