gpt4 book ai didi

sendmail - PHP:带有用于 SMTP 和 SMTP_PORT 的运行时 ini_set() 的 mail() 函数在 Linux 上不工作

转载 作者:搜寻专家 更新时间:2023-10-31 21:11:32 25 4
gpt4 key购买 nike

我使用 PHP 代码使用 SMTP HOST 进行邮件发送,如下所示:

        ini_set('SMTP','myserver');
ini_set('smtp_port',25);
$to = $email;
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: NO-REPLY<no-reply@mydomain.com>" . "\r\n";
$subject = "Confirmation For Request";
$message = '<html>
<body>
<p>Hi '.$firstname.' '.$lastname.'</p>
<p>
We recieved below details from you. Please use given Request/Ticket ID for future follow up:
</p>
<p>
Your Request/Ticket ID: <b>'.$ticketID.'</b>
</p>
<p>
Thanks,<br>
'.$team.' Team.
</p>
</body>
</html>';
mail( $to, $subject, $message, $headers );

现在,当我在 Windows Localhost 中执行代码时。我成功地收到了邮件,而如果我在我的 Linux 设置中使用相同的代码,我没有收到任何邮件,尽管 mail() 函数在 linux 机器中返回 true还有....

在查看 windows 本地主机和 Linux 服务器的 phpinfo 时,对于邮件参数,我发现了一个区别,

在 Windows 中我发现 sendmail_path == "No Value",而在 linux 服务器上它说,"usr/sbin/sendmail -t -i"

有人可以帮我解决这个问题吗?

注意:在 Windows 中,它是 WAMP 设置,而 Linux 是专用服务器...

最佳答案

如果你正在寻找你的 php.ini 有一个简短的描述

ini_set('SMTP','myserver');
ini_set('smtp_port',25);

这两个值仅适用于 Windows。所以如果你想在 Linux 上通过 SMTP 发送邮件,你必须安装 postfix 并构建一个中继。

https://www.linode.com/docs/email/postfix/postfix-smtp-debian7

或者使用可以通过套接字发送 SMTP 邮件的库或像 Swiftmailer 这样的 curl 真的更容易。

http://swiftmailer.org/docs/sending.html

这要容易得多,而且可以正常工作。

关于sendmail - PHP:带有用于 SMTP 和 SMTP_PORT 的运行时 ini_set() 的 mail() 函数在 Linux 上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com