我已经尝试了整整 2 天,但我无法让最简单的事情发挥作用。
问题:从 PHP 向我的电子邮件地址发送电子邮件不起作用
我之前一直在使用Windows和Sendmail(Sendmail 在 XAMPP 包中),一切正常。用于 Linux 的 XAMPP 包 (1.7.7) 没有集成 Sendmail。因此,在谷歌搜索后,我发现Postfix更适合 LAMPP 环境。
到目前为止我尝试过的:
我已经安装了Postfix并希望将其配置为仅使用我的私人电子邮件提供商的 smtp 服务器(就像在 Windows 上所做的那样)。所以我像这样配置了我的php.ini:
[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
sendmail_path = /etc/postfix
mail.add_x_header = On
Run Code Online (Sandbox Code Playgroud)
请注意,我已经注释掉了“仅限 Win32”的内容。在/etc/postfix/main.cf文件看起来像这样:
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
myhostname = ubuntu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
sender_canonical_maps = hash:/etc/postfix/sender_canonical
mydestination = ubuntu, localhost.localdomain, localhost
relayhost = mail.gmx.net
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
Run Code Online (Sandbox Code Playgroud)
/etc/aliases不变:
# Required aliases
postmaster: root
MAILER-DAEMON: postmaster
# Common aliases
abuse: postmaster
spam: postmaster
Run Code Online (Sandbox Code Playgroud)
/etc/postfix/sasl_password:
my.providers.smtp my_login:my_password
Run Code Online (Sandbox Code Playgroud)
/etc/postfic/sender_canonical:
postmaster my.email@ddress.com
Run Code Online (Sandbox Code Playgroud)
发生什么了:
所以当我做
> sudo /etc/init.d/postfix start
Run Code Online (Sandbox Code Playgroud)
一切似乎都正常,/var/log/ mail.log说:“ubuntu postfix/master[9720]:守护进程已启动——2.8.5 版,配置 /etc/postfix”
但是当我运行我的 PHP 脚本(它在 Windows 和 Sendmail 中运行良好)时,它只是运行了,没有任何反应,甚至没有记录错误。
我真正想要实现的目标:
我在本地的电子商务网站上工作。它在专用网络服务器上运行良好,但出于明显的原因,我也希望它在本地运行。在某些情况下,它会发送电子邮件,而我只是希望能够通过 Thunderbird 或任何其他方式接收它们。在这里使用Postfix是不是有点矫枉过正?我不需要接收电子邮件 - 我只是想让发送的邮件以某种方式可见。我似乎找不到针对此问题的任何有用的分步教程(既不涉及 Senmail 也不涉及 Postfix - 但说实话,我对 Linux 非常陌生)。
Cae*_*ium 13
在你的 php.ini 中,这个:
sendmail_path = /etc/postfix
Run Code Online (Sandbox Code Playgroud)
应该是 sendmail(或兼容)二进制文件的路径。
你把它设置到 postfix 的配置目录是不对的。
由于历史原因,通常/usr/bin/sendmail是作为一个兼容性链接来维护的。
sendmail首先是(我猜)并且几乎所有内容都假设它在已安装的 MTA 中。因此,当它不是时,替换会创建一个符号链接,以便不会中断。
| 归档时间: |
|
| 查看次数: |
38364 次 |
| 最近记录: |