如何从严重防火墙的网络发送带有PHP的电子邮件?

时间:2009-05-03 21:35:21

标签: php email smtp firewall mail-server

我希望从我的localhost机器发送一封电子邮件(使用PHP邮件功能)但由于我没有邮件服务器,所以我不能这样做。此外,我需要能够通过严重防火墙的网络发送电子邮件(我还不知道程度)。

我的想法是使用“QK SMTP Server 3”并使用我作为“中继服务器”的外部服务器。这会有用吗?有更简单的选择吗?

如果我的方法是好的。我想知道如何在我的服务器上打开端口25,以便它可以接收此请求。通过执行此命令,我得到:

[root@balder296 ~]# service iptables status
Firewall is stopped.
[root@balder296 ~]#

感谢您提供任何帮助和建议。

解决

Hotmail(令人惊讶的是)提供免费中继服务。我希望当我测试它时,这对我有用!但是外部邮件服务器是可行的方式。

6 个答案:

答案 0 :(得分:2)

确定您是否可以通过端口25(SMTP)连接到Internet

  • telnet gmail-smtp-in.l.google.com 25(这是其中一个Gmail服务器)

如果您能够打开连接,只需安装邮件服务器并使用mail()函数发送邮件。

  • yum install postfix(例如,根据您的“服务”评论,我假设您正在运行Redhat或Centos)

如果您无法连接到端口25上的Internet邮件服务器,您可以尝试查找内部邮件中继(这是您必须自己找到的,具体取决于您的网络)。

此时您有两种选择。如果在邮件服务器中定义'relay'参数(/ etc / postfix,如果你正在使用Postfix),则可以使用本地邮件服务器的内部mail()函数。

另一个选择是遵循this guide并让PHP将消息发送到内部中继。

答案 1 :(得分:1)

也许有一个(好的?)理由可以解释为什么你所在的网络被严重防火墙。

为什么不问网络上的人员发送邮件的好方法是什么?

答案 2 :(得分:0)

如果您拥有Google Mail帐户,则可以使用该帐户使用Swift Mailer发送电子邮件。

答案 3 :(得分:0)

你需要一台运行邮件服务器的防火墙后面的机器。优选地,这应该是应该使用的全部。虽然应阻止其后面的所有其他内容在端口25上打开传出连接,但应该这样做。让运行应用程序的计算机上的邮件服务器通过该计算机进行中继。我在托管公司工作,这就是我们使用共享托管服务器的方式。这样,您就可以跟踪任何外发邮件,以确保防火墙后面没有任何内容做任何事情。

你是友好的邻居如果你问得好的话,系统管理员几乎肯定会这样做。

答案 4 :(得分:0)

如果这是针对公共应用程序的,请记住,即使您可以获得出站SMTP访问权限,也可能会遇到问题。反垃圾邮件保护已经对网络行为相当挑剔。例如,网络上有一个有效的SMTP服务器,如果它们看起来与网络外部具有相同的IP地址,则您可以设置另一个服务器可能会给两个服务器带来麻烦。一些主要的黑名单会自动阻止看起来有多个服务器的地址。

如果您试图绕过网络管理员,最多可能会有一个脆弱的系统。根据您的网络规则/设置,您可以设置SMTP服务器包以从网络上的其他电子邮件服务器中继邮件。这应该需要使用网络或电子邮件管理员。

答案 5 :(得分:0)

我过去曾使用过SwiftMailer,然后设置了一个通用的Gmail帐户来发送邮件。我发现的一件事是,最好将发件人地址保留为您设置的Gmail帐户,否则垃圾邮件过滤器会丢弃电子邮件。