我们现在已经使用了Postfix很长时间了,并且对它有所了解。 现在,我们需要“走进现代”,让人们从我们的SMTP服务器发送电子邮件,即使它们在我们的networking之外。 所以,负责这项工作,我发现pop-before-smtp。
你可以在这里find它。
所以,我已经configuration好了,但是在testing中失败了。 我使用这里的指示麻烦它,并确定试图parsing日志的PERL似乎是不正确的。 我们使用Dovecot作为我们的IMAP / POP服务器,并且在configuration文件中给出了三个select。 这里是从configuration文件中摘录出来的三组数据:
# For Dovecot POP3/IMAP when using syslog. #$pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' . # 'Login: .*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]'; #$out_pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' . # 'Disconnected.*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]'; # For Dovecot POP3/IMAP when it does its own logging. ##$logtime_pat = '(\d\d\d\d-\d+-\d+ \d+:\d+:\d+)'; #$pat = '^dovecot: [LOGTIME] Info: (?:imap|pop3)-login: ' . # 'Login: .+? rip=[:f]*(\d+\.\d+\.\d+\.\d+),'; #$out_pat = '^dovecot: [LOGTIME] Info: (?:imap|pop3)-login: ' . # 'Disconnected.*? rip=[:f]*(\d+\.\d+\.\d+\.\d+),'; # For older Dovecot POP3/IMAP when it does its own logging. #$pat = '^(?:imap|pop3)-login: [LOGTIME] Info: ' . # 'Login: \S+ \[[:f]*(\d+\.\d+\.\d+\.\d+)\]'; #$out_pat = '^(?:imap|pop3)-login: [LOGTIME] Info: ' . # 'Disconnected.*? \[[:f]*(\d+\.\d+\.\d+\.\d+)\]';
一个是应该取消那些适用的,但是,他们都没有工作。
我推测“pat”是login模式,out-pat是登出或断开连接的模式。
实际的日志logging格式明显不同于这三者中的任何一种,但它们很接近。 下面是一对例子:
Mar 11 17:53:55 imap-login: Info: Login: user=<username>, method=PLAIN, rip=208.54.4.205, lip=192.168.1.1, TLS Mar 11 17:59:10 IMAP(username): Info: Disconnected: Logged out bytes=352/43743
当使用POP时,“imap-login”被replace为“pop-login”,在注销时,“POP”replace“IMAP” – 为什么大写字母的变化我不能说!
导入和数据是:时间戳,用户名和login时的“远程”ip(“rip”)。
如果有足够的时间,我可以拼凑出一些有用的东西,但是由于我实际上并不了解PERL,所以这样做很难!
请帮助!
我知道你已经要求支持pop-before-smtp。 但是,如果你的后缀有SASL SMTPauthentication支持,为什么不使用它。 pop-before-smtp dev在2007年停止了。
现代邮件系统在SMTP之前不应该使用POP。 这是一个90年代的黑客,因为在90年代后期,垃圾邮件开始增长,我们需要确定是否允许用户发送邮件。 我们不得不依靠这种黑客攻击,因为当时没有MTA本地支持authentication发送,即使没有MTU在客户端支持。
正如Richard T所说,在服务器端使用sasl auth,更好的做法是通过smpts。