php - 在本地主机发送邮件需要很长时间

标签 php ubuntu sendmail

我正在使用 Ubuntu。我使用以下命令在我的本地主机上安装了 sendmail

sudo apt-get install sendmail

现在我想使用以下 php 代码检查邮件是否来 self 的本地主机。

<?php
$to = "test@test.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?> 

当我执行代码时,需要很长时间才能最终将消息回显为邮件已发送。 有没有可能解决这个问题?

最佳答案

编辑文件 /etc/hosts 并确保第一行如下:

127.0.0.1 localhost.localdomain localhost myhostname

编辑sendmail配置文件(在Ubuntu中为/etc/mail/sendmail.cf)并取消注释line #O:

O HostsFile=/etc/hosts

重启电脑,或者运行sudo service sendmail restart

计算机现在应该启动得更快,mail() 函数应该几乎立即返回。

但是,除非您执行第 5 步,否则实际上不会发送电子邮件。

无论何时使用邮件功能,您都必须新使用 sendmail -f 选项。

例如:

mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');

关于php - 在本地主机发送邮件需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7578952/

相关文章:

php - 是否可以将 sendmail 配置为默认使用 SMTP 身份验证(用于 PHP)?

java - 如何使 javax.mail 使用本地 "sendmail"二进制文件?

php - MySQL(或 PHP?)按字段数据对结果进行分组

php - 远程 PHP 服务器中的 Android 应用内计费安全模块 : do I have to rewrite all the JAVA code

git - 带有gitolite密码的ubuntu服务器

azure - 为什么尝试从 Ubuntu 22.04 通过 SSH 连接到 Azure Linux 虚拟机时总是超时?

asp.net-mvc - 如何从 MVC 5 应用程序发送电子邮件

javascript - 我正在尝试将背景图像源更改为输入到表单框中的 url

php - 无法向数据库插入新行

c - 当我尝试使用 ./secondo 执行此代码时,我收到此错误