使用MAMP在本地主机上用PHP发送邮件

5

我已经尝试了互联网上能找到的所有方法,但似乎都没有奏效。所以我肯定是做错了什么,需要一些帮助来找出问题所在。

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = myemail@yahoo.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i -f myemail@yahoo.com

上面的代码是我所做的所有更改(除了电子邮件是我的实际电子邮件之外(我也不确定雅虎电子邮件是否适用于此,所以可能是问题所在?))
我不确定sendmail_path去哪里,我无法找到该路径(我应该下载名为sendmail的文件/程序吗?)
另外,我的APACHE端口已更改为80,我的MySQL端口为3306(我不知道这些端口是否与smpt_port有关)
任何帮助都将不胜感激,谢谢!
(如果还有其他方法(更简单的方法)可以完成此操作,请告诉我)。

MAMP - 那么你使用的是Mac?可能没有实际的sendmail,但可能有postfix或exim,两者都提供了一个sendmail别名并伪装成sendmail。 - Marc B
是的,我在用 Mac,好的,我会看看那些的,谢谢。 - Dylan Cross
我知道这篇文章已经两年了,但是说句实话:usr文件夹是一个隐藏的文件夹。请参考这篇文章以在Finder中显示隐藏文件夹:http://www.macworld.co.uk/how-to/mac-software/how-show-hidden-files-in-mac-os-x-finder-3520878/ - Iris
6个回答

6
这篇文章中提供的解决方案最终对我有用。https://tripleroi.com/solvedenabling-sendmail-on-localhost-for-mamp-free-version/ php.ini文件中正确的设置为:
[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from = don@tripleroi.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path =/usr/sbin/sendmail -t -i -f  yourname@example.com

您需要确保注释掉Win32设置。这样做后,我的Mac上的MAMP服务器终于成功发送了一封邮件。


1
链接已失效,请提供一个代码示例。 - brace110
1
准备好接收过去的一大堆电子邮件,它们都被存储了起来,直到你进行更改才会发送出去 :)。 - Ansjovis86
这个解决方案仍然适用于2022年7月的最新Mamp 6.6和php 8.1.1。 - Pluda

2

7
我第一次看到一个被验证的答案有负分 o_0 - Jibeee

1

我以前在使用MAMP时也遇到过这样的问题,包括电子邮件问题。

MAMP Pro应该可以解决所有问题,但我建议自己安装apache/php/mysql。您将不再遇到基本问题,而且这是一个免费的解决方案。

如果您使用的是OSX,那么apache已经存在,php可以通过homebrew安装。 Mysql可以从官方网站下载安装程序。


1
这个话题有点偏离主题,但你应该知道,如果你从本地主机发送电子邮件给任何真实客户,它们很可能会被归类为垃圾邮件。不要使用本地电子邮件服务器,而是使用第三方超便宜的电子邮件发送服务之一:Amazon SES或Sendgrid都很容易上手,并且易于扩展。

0
在我的情况下,问题出在空的 /etc/postafix/main.cf 文件。
cat /etc/postafix/main.cf

没有显示任何内容。但是 main.cf~orig 不是空的。 所以我只是从 main.cf~orig 中复制了内容:

sudo cp main.cf~orig main.cf

之后MAMP开始发送邮件。


-5

mail.php 配置文件中设置 'from'


您只能从附加到您的域名的电子邮件地址发送邮件... 在本地主机上,您没有这样的电子邮件。 - Albin wärme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接