为localhost设置电子邮件


0

我正在尝试测试一些Web代码并在本地主机上运行它。如何为localhost设置电子邮件,以便代码可以使用php消息函数发送电子邮件?

如果我需要在某处获得某个Web托管空间并使用该邮件服务器从localhost发送电子邮件,我该如何设置它?


1
有助于了解您正在使用的操作系统...
ck.

OSX,运行mamp。
jarryd

1
十多年来,OS X已经发布了八个主要版本。请更具体一点。
Daniel Beck

Answers:


1

Mac OS X 10.5和10.6附带一个名为的邮件发送程序 postfix,但默认情况下不会打开。这可能适用于10.7,但我没有考虑过。

如果您只想将所有外发邮件发送到某个中继服务器(如Internet服务提供商的SMTP服务器),则通常需要为发送邮件的计算机提供主机名。此配置适用于未用于接收邮件的服务器。

打开 终奌站 并在一行中输入以下命令。在第一个命令之后,系统将提示您输入密码。 (哦,您需要以具有管理权限的用户身份登录。)

首先,你要设置 postfix 在您的计算机尝试发送邮件时运行:

% sudo launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist
% sudo defaults write /System/Library/LaunchDaemons/org.postfix.master OnDemand -bool true
% sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist

接下来,你要告诉 postfix 计算机的主机名是什么:

% sudo postconf -e myhostname=<host-name-of-computer>

接下来,告诉 postfix 用于发送电子邮件的SMTP服务器:

% sudo postconf -e relayhost=<your-isp's-smtp-server>

这适用于我,因为我的ISP不需要身份验证即可使用其SMTP服务器。他们只要求流量来自他们的网络。

如果您使用的SMTP服务器需要身份验证,则需要执行一些额外步骤:

% sudo echo <you-isp's-smtp-server> <username>:<password> >> /etc/postfix/sasl_passwd
% sudo postconf -e smtp_sasl_auth_enable=yes
% sudo postconf -e smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd

此时,如果 postfix 试图发送电子邮件给 someone@<host-name-of-computer>,电子邮件将在本地发送。如果您的主机名的电子邮件由其他服务器处理,请告诉您 postfix 这不是发送到该主机名的电子邮件的最终目的地:

% sudo postconf -e mydestination=localhost

我专门针对我的环境使用了以下内容:

% sudo postconf -e myhostname=subtlecoolness.com
% sudo postconf -e relayhost=smtp-server.austin.rr.com

那里!你现在应该跑步了 postfix 并且您的网络服务器将发送电子邮件!

(一世 写了一篇关于此的博客文章 很久以前。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.