emailrelay“无法绑定侦听端口”

时间:2010-08-07 14:42:59

标签: linux smtp emailrelay

我正在亚马逊的EC2上设置我的网络服务器。我的网站曾经在本地运行,并使用我的ISP的SMTP服务器发送电子邮件,这在以前不是问题 - 但现在电子邮件来自我的ISP外部将不接受它们。

因此,我正在尝试the advice here使用EmailRelay转发电子邮件,通过我在Google上的帐户添加身份验证。

我按照说明操作,创建了emailrelay.auth文件,运行configure,make,make install,但是当我尝试启动emailrelay服务时,我收到此错误:

$ emailrelay --as-proxy smtp.gmail.com:587 --client-tls --client-auth /etc/emailrelay.auth
emailrelay: error: cannot bind the listening port: 0.0.0.0:25
emailrelay: exception: cannot bind the listening port: 0.0.0.0:25

我查看了user guide,尝试使用--interface选项认为这可能是问题 - 提供各种IP,没有任何乐趣 - 我不知道下一步该尝试什么。

(我的服务器正在运行Oracle Enterprise Linux 5.1)

修改

由于sendmail在端口25上运行,我尝试了另一种端口。现在我收到一个新错误:

$ emailrelay --as-proxy smtp.gmail.com:587 --client-tls --client-auth /etc/emailrelay.auth --port 8025
emailrelay: error: cannot do tls/ssl: openssl not built in
emailrelay: exception: cannot do tls/ssl: openssl not built in

在杀死sendmail之后,我用端口25重试了,我得到了同样的错误(“不能做tls / ssl:openssl没有内置”)。

修改

看起来没有安装openssl:

$ grep ssl config.log
  $ ./configure --with-openssl
configure:7373: checking for openssl
conftest.cpp:31:25: error: openssl/ssl.h: No such file or directory
| #include <openssl/ssl.h>
configure:7431: WARNING: ignoring --with-openssl, check config.log and try setting CFLAGS
config.status:719: creating src/gssl/Makefile

2 个答案:

答案 0 :(得分:1)

该错误意味着它无法获得对端口25(SMTP的默认端口)的独占访问权限。这可能是因为它已经在使用中,或者因为作为非特权用户,您无法访问编号小于1024的端口。

可能已经有一个程序在端口25上运行。可能是sendmail,但可能是postfix或qmail(我不知道Oracle用于邮件)。你需要关闭任何这样的程序。

如果您关闭计算机上的任何电子邮件软件并以root用户身份运行emailrelay,您可能不会收到该错误消息。

答案 1 :(得分:0)

我在运行Ubuntu的EC2实例上遇到了同样的问题。

对于 Ubuntu

  1. 首先sudo apt-get install libssl-dev
  2. 然后(重新)运行./configure && make && sudo make install
  3. 现在使用:25如果清除,或者将另一个端口提供给emailrelay --port 12345,它就会按预期工作。