Nat*_*ong 0 email php sendmail apache-2.2
我正在 Windows 上设置一个 Apache 服务器 (2.2.14),并从现有的 XAMPP 配置中借鉴想法。我现在正在尝试为 PHP (5.3.1) 设置电子邮件功能。(它需要能够处理附件,就像 XAMPP 服务器一样。)
我注意到 XAMPP 带有用于 Windows 的假 sendmail,但是关于配置的一些事情对我来说没有意义。
以下是 XAMPP 的几行php.ini:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为:
sendmail_path 默认被注释掉我想知道是否sendmail.exe有必要。所以,我的自定义Apache服务器,它不会对sendmail.exe,我编辑php.ini添加正确的信息SMTP,smtp_port和sendmail_from。有了它,它就可以发送邮件了!但它很慢。
然后我回到XAMPP服务器并重命名sendmail目录,希望禁用sendmail。那种工作 - 我的 PHP 脚本声称已发送,但什么也没发生。
所以我很困惑。
sendmail_path注释掉,但显然仍在使用它指向的程序。它怎么知道?sendmail_path,但可以在没有它的情况下以某种方式发送邮件。它是如何做到的?我实际上需要做什么来配置 Apache 服务器以发送电子邮件?
经过进一步的搜索和测试,似乎:
在 Windows 上,PHP 的 mail() 函数不一定需要将电子邮件传递给同一台计算机上的另一个程序;它可以自己连接到邮件服务器
然而,这是低效且缓慢的。
在服务器机器上设置假的 sendmail并将php.ini的sendmail_path指令指向它可以使发送电子邮件的速度更快。就我个人而言,我想象sendmail.exe将数据咀嚼成漂亮的、可消化的小块,然后像母鸟喂她的宝宝一样吐到邮件服务器的嘴里。嗯!但也许我疯了。
如果你sendmail.exe输入C:\usr\bin,这允许一些希望在基于 Unix 的操作系统上运行的程序在 Windows 上运行
这里是在PHP手册中的一些信息,帮助我来解决这一问题。
注意:mail() 的 Windows 实现在许多方面与 Unix 实现不同。首先,它不使用本地二进制文件来编写消息,而只在直接套接字上运行,这意味着需要 MTA 侦听网络套接字(可以在本地主机或远程机器上)。
和...
注意:值得注意的是,mail() 函数不适合循环处理大量电子邮件。该函数为每封电子邮件打开和关闭一个 SMTP 套接字,效率不是很高。如需发送大量电子邮件,请参阅 » PEAR::Mail 和 » PEAR::Mail_Queue 包。
| 归档时间: |
|
| 查看次数: |
36075 次 |
| 最近记录: |