我拥有一个用于托pipe大约30个域名的VPS。 在每个域我有几个电子邮件帐户。 共有超过150个帐户。 在过去的几周里,我注意到有时(一天几次,大部分是在高峰时间),有几封邮件没有发送,而是延期发送。 在maillog中有一个消息“拒绝连接”。 过了一段时间,他们最终成功发送。 有的在2-3小时后有一段时间过了5分钟后才发送,但是都发了。
我是一个网页devise师,具有良好的编程知识,但不幸的是在Linux(Centos7)方面经验不足。
自己无法find问题后,我到达了我的VPS的托pipe公司。 他们说,他们确实已经限制了所有的VPS 在当时只能打开一个SMTP套接字 。 他们这样做是为了防止垃圾邮件发送者将他们的IP(或整个IP范围)列入黑名单。 他们提供了我切换到专用或find另一个主机。 由于专用服务器的价格是VPS的价格的几倍,我真的不需要切换到专用(我已经提到,我主持30个小网站),我试图find解决这个问题的解决scheme。
目前,我强制重发的延期电子邮件
postqueue -f
命令。 但是我需要手动执行这个命令,并且和队列中的延期邮件一样多 。 更不用说需要不断地监视队列中的电子邮件。 显然这不是我的问题的解决scheme。
我试图安排一个crone
每5分钟执行一次postqueue
命令,但在第一次执行后,我得到了一些像Unknown命令postqueue或command not found
或类似的错误的东西…我想这与环境variables有关,但是这是失败我现在的知识范围。 除此之外,如果在队列中有10个被拒绝的邮件,则每个cron
执行只发送一个邮件。 所以最后一封邮件将在50分钟后发送,这仍然不是一个很好的解决scheme。 我需要一个cron来运行这样的事情每5分钟运行一次crone(或者其他)
while (there are deferred emails in the queue) { postqueue -f }
出现了另一个问题:如果电子邮件由于另一个原因,而不是连接被拒绝,例如目的地主机不可达,那么该怎么办?比这个cron永远不会完成…!?! 一般来说,这个cron解决scheme的性能如何?
你有没有类似的问题的经验? 我如何生活在我的VPS这个SMTP套接字限制。 我应该find另一个主机或切换到专用?
这可能是相关的:我在我的VPS上使用centos 7,并且拥有用于域pipe理的Plesk面板。
任何帮助将是伟大的。 谢谢!
编辑:
我设法用这个命令安排一个cron
/ sbin / postqueue -f
每5分钟运行一次( 0,5,10,15,20,25,30,35,40,45,50,55 * * * *
)。 但是,如上所述,这仍然不是一个完美的解决scheme。