sendmail的ssh隧道

时间:2008-12-24 18:51:53

标签: linux ssh sendmail mutt fetchmail

我在这里疯了,试图配置我的系统。

我家里有一台笔记本电脑,还有工作站。我用mutt和sendmail。我有一个家庭ISP,在很多黑名单上,所以我从笔记本电脑通过我的ISP发送的任何电子邮件经常被接收者阻止为垃圾邮件。我可以通过SSH连接到我的工作站并以交互方式使用mutt,但这很慢且很乏味。我用fetchmail将我的电子邮件从工作服务器下载到笔记本电脑。

我试图让笔记本电脑使用

通过工作邮件发送邮件
ssh -L 25:workstation.work.com:25 workstation.work.com

但是当我这样做时,似乎sendmail无法运行。当我尝试从工作站fetchmail到笔记本电脑时,必须在笔记本电脑上运行sendmail才能在笔记本电脑上本地传送邮件。当邮件通过时,它会被拒绝,因为主机名无法识别。我试过改变mutt中的主机名。这似乎不会影响任何事情。

所以我对如何在我的笔记本电脑上配置mutt,sendmail和SSH感到困惑,这样我就可以从我的笔记本电脑编写和发送电子邮件,以便他们得到发送,但我也希望从服务器上获取我的电子邮件fetchmail并将其发送到本地。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:7)

如果您运行该ssh隧道,则无法在本地运行sendmail,否则它将侦听端口25,而不是您的隧道。默认情况下,fetchmail需要本地邮件服务器才能发送,但是如果您愿意,可以将其配置为直接发送到mbox文件。

我所做的是在笔记本电脑上运行postfix,并将其设置为使用/etc/postfix/main.cf中的relayhost=[127.0.0.1]:2526将邮件发送到localhost:2526。然后我运行ssh隧道ssh -N -L 2526:localhost:25 ptomblin@myserver,这样当postfix进行传递时,它会通过隧道隧道传出。而像mut​​t和fetchmail这样的本地邮件客户端会看到端口25上运行的本地邮件服务器,就像他们期望的那样。

答案 1 :(得分:0)

保罗:你的回答是做生意的!我很困惑,应该指定-L 54321:localhost:25而不是-L 54321:remotehost:25。注意你的relayhost节中的拼写错误。方括号应在冒号前关闭,因此:relayhost = [127.0.0.1]:54321。 感谢postfix上的提示。我以前总是使用sendmail,有点盲目,现在你的建议已经安装并使用了postfix,并且发现配置与sendmail相比绝对令人高兴!