使用邮件功能从php发送电子邮件



我想从php文件(Windows 10、localhost、XAMPP)发送电子邮件。

我遵循了这个教程:链接

我的php.ini文件如下:

[mail function]
; For Win32 only.
SMTP = smtp.secureserver.net
; For Win32 only.
sendmail_from = some.email@gmail.com

我的php文件包含以下内容:

$to = "another.email@gmail.com";
$subject = "Subject";
$mesaj = "Message";
$headers = "From:some.email@gmail.comrn";
$headers .= "MIME-Version: 1.0rn"; 
$headers .= "Content-type: text/html; charset=iso-8859-1rn"; 
mail($to, $subject, $message, $headers);

运行时,会出现以下警告:
警告:mail():无法连接到位于"的邮件服务器;localhost";端口25,验证您的";SMTP";以及";smtp_port";在php.ini中设置,或在C:\examplep\htdocs\store\email_sender.php的第61行使用ini_set()不发送电子邮件。

我看到了类似的问题(Link_1、Link_2、Link_3)。

但我不明白我该怎么办。我读到我需要安装SMTP服务器。我应该安装什么服务器?

我也遵循了这个例子(从邮件函数php发送电子邮件),但警告仍然存在,并且没有发送电子邮件。

编辑:我已经修改了php.ini文件中提供的信息:

[mail function]
SMTP=smtp.gmail.com
smtp_port=587
smtp_port=465
sendmail_from = some.mail@gmail.com
sendmail_path = ""C:xamppsendmailsendmail.exe" -t"

我还修改了sendmail.ini文件中提供的信息:

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
error_logfile=error.log
;debug_logfile=debug.log
auth_username=some.mail@gmail.com
auth_password=somepassword
force_sender=some.mail@gmail.com

我不得不提到的是,在Gmail中,两步验证被禁用,并启用了对不太安全的应用程序的访问。我还停止并启动了Apache服务器。

问题中包含的所有帮助链接都是正确的。我听到你说的是,你没有完全理解这些链接告诉你要做什么。让我看看我是否可以帮助你理解完成你试图做的事情所必需的。

当你从你创建的任何程序发送电子邮件时,无论你是用PHP、C++、Java编写代码。。。没有什么区别,编程语言的底层库确实完全理解如何发送电子邮件。但你只能使用在互联网上活跃的电子邮件服务器发送电子邮件,并且你有一个有权发送电子邮件的帐户。

如果电子邮件服务器只允许任何人通过它们发送电子邮件,你可以想象这个星球上的垃圾邮件会有多糟糕。

在本地计算机上安装SMTP服务器也不能解决您的问题,因为您需要有一个自己控制的子域(whateverwhatever.com),并且需要在公开可见的DNS服务器中创建MX记录。你可以用GoDaddy购买域名,然后创建MX记录并将其指向你的IP地址等,但这需要做很多工作。

我建议你做的是,如果你有一个GMAIL帐户,你可以使用GMAIL服务器发送电子邮件,但你需要配置你的PHP代码(使用ini_set()命令或在PHP.ini文件的[mail function]标题下配置GMAIL服务器所需的信息。

以下是大多数SMTP服务器所需的相当常见的信息,您必须在代码或php.ini文件中定义这些信息:

  • SMTP服务器地址(SMTP.gmail.com)
  • 你的Gmail帐户名
  • 你的Gmail帐户密码
  • Gmail服务器所需的端口号

在允许您发送电子邮件之前,它可能需要查看其他信息。

看看这个页面,它解释了如何使用自己的Gmail帐户免费发送电子邮件。此外,使用"如何使用我的个人帐户通过Gmail发送SMTP"等短语进行一些谷歌搜索。。。信息就在那里。

一旦你了解了Gmail服务器发送SMTP电子邮件所需的内容,你只需将所有这些所需的信息输入到你的PHP代码或PHP.ini文件中。关于如何做到这一点,有很多文档。

进一步讨论:

再澄清一下你实际在做什么:。。。你需要明白,你正在编写的PHP程序是一个专门的电子邮件客户端,因为没有更好的术语。你习惯于用Outlook、网络界面或其他电子邮件客户端发送电子邮件,你只需写下电子邮件,输入你要发送的人的地址,然后点击发送,它就会。。。但现在,你正在编写软件来完成从电子邮件程序点击发送后发送电子邮件的部分。。。电子邮件过程中你永远不用考虑的部分。。。您现在需要使用代码进行创建。因此,您的代码需要知道将电子邮件放在哪里,并且如果没有适当的凭据,电子邮件服务器将不会接受来自任何地方的电子邮件。

所以你基本上是用PHP代码编写的,这是一个非常简单的电子邮件客户端版本,需要学习如何发送电子邮件。。。这就是你给妈妈发电子邮件时点击发送后发生的所有事情。。。。你从来都不需要知道你的电子邮件在点击发送后会发生什么,直到现在。。。因为您在PHP代码中对流程进行了严格的编码。

我希望这能帮助你更好地理解这里发生的事情。

相关内容

  • 没有找到相关文章

最新更新