我正在使用Exim 4服务器发送电子邮件给一些客户,我不是Linux大师,但它运作良好。
一个客户使用AppRiver,我们被告知我们需要启用stream水线,所以他们不把我们的电子邮件视为垃圾邮件。 我花了数小时search,试图找出启用此function,但我不知道如何。 据我可以告诉它是默认启用。
谁能帮忙?
首先,“stream水线”一词在SMTP中有两个含义。
这听起来像是在谈论#2。 根据http://www.exim.org/exim-html-current/doc/html/spec_html/ch41.html#SECTmulmessam ,关于通过TLS连接stream水线到主机:
Exim通过为每个消息启动一个全新的传递过程,在同一个TCP / IP连接下发送多个消息,并将套接字从一个进程传递到下一个进程。 这个实现不适合使用TLS,因为有相当多的与TLS连接相关的状态信息,而不仅仅是一个套接字标识。 把所有的状态信息传递给一个新的过程是不可行的。 因此,在将套接字传递给新进程之前,Exim会closures现有的TLS会话。 新进程可能会尝试启动新的TLS会话,如果成功,可能会在发送下一条消息之前尝试重新进行身份validation(如果AUTH正在使用中)。
这意味着什么,而不是你所期望的:
connect->starttls->msg1->msg2->...msgX->quit
Exim是这样做的:
connect->starttls->msg1->end_session->starttls->msg2->end_session...->quit
以上是从记忆中,我不记得是否“end_session”包括断开连接。 但是我帮助一个人在IRC里排查了这个行为,他发现上面这个段落意味着如果使用STARTTLS来encryption会话,它将不会以第一种方式描述。 所以不幸的是,我唯一的评论是,如果你不强制TLS这个特定的主机,它应该开始stream水线他们想要的方式,但我觉得这不是一个好的答案,因为我相信所有的电子邮件传输应该encryption。