+ die_nomem();
+ }
+ if (!stralloc_cat(&tmplogin, &mydefaultdomain))
+ {
+ die_nomem();
+ }
+ strncpy(authusername, tmplogin.s, sizeof(authusername));
+ }
+ else
+ {
+ strcpy(authusername, smtpauthlogin);
+ authusername[k]='@';
+ }
+ }
+ else {
+ strcpy(authusername, smtpauthlogin);
+ }
+ return !strcasecmp(from, authusername);
+}
+
+
+void auth_smtplog(authlogin, authresult)
+char * authlogin;
+int authresult;
+{
+ char * x = env_get("LOG_AUTH");
+
+ if (!x || (*x != '1')) return;
+
+ if (authresult == SMTP_AUTH_SUCCESS) {
+ syslog(LOG_MAIL | LOG_INFO, "smtp auth:; user name is %s, success!", authlogin);
+ } else {
+ syslog(LOG_MAIL | LOG_INFO, "smtp auth:; user name is %s, failed!", authlogin);
+ }
+}
+
static int smtpauth_getl(void) {
int i;
if (!stralloc_copys(&smtpauth, "")) return -1;
@@ -611,11 +699,14 @@
wait_pid(&st, pid);
if (wait_exitcode(st) == 0) {
out("235 go ahead\r\n");
+ authd = 1;
+ auth_smtplog(smtpauthlogin, SMTP_AUTH_SUCCESS);
flush();
relayclient="";
return;
}
sleep(2);
+ auth_smtplog(smtpauthlogin, SMTP_AUTH_FAILED);
out("535 auth failure\r\n"); flush(); _exit(0);
/* done */
}
[/code:1:e9fa54356d]
另外我有个问题请问 gadfly ,我用呢前面的那个补丁打入最新的那个 qmail-smtpd.c (就是有三行输出的那个)。用编译后的 qmail-smtpd 来跑,认证没有问题,但是客户端的地址设置还是可以随便改啊,可不可以帮我分析一下原因??
我的 runsmtp 启动脚本是:
#/bin/sh
LOG_AUTH=1
export LOG_AUTH
tcpserver -H -R -l 0 0 smtp /var/qmail/bin/qmail-smtpd-auth /bin/checkpassword /bin/true &
另外加了你的那个日志记录后会记录一些什么内容啊?仍然是在 Linux 的 /var/log/maillog 中吗??
我的 runsmtp 脚本改为:
#/bin/sh
LOG_AUTH=1
export LOG_AUTH
tcpserver -H -R -l 0 -u qmailduid -g qmaildgid 0 smtp /var/qmail/bin/qmail-smtpd-auth /bin/checkpassword /bin/true | /var/qmail/bin/splogger &
另外看我最前面的说明。
特别要说明的是粘贴上来后,有些没有空格了。得自己补上
后来在 gadfly 的热心帮助下解决了遇到的一些我在运行脚本和 qmail 配置文件上的问题;描述如下,供大家参考。
runsmtpd-auth脚本:
#!/bin/sh
LOG_AUTH=1
export LOG_AUTH
- 建置安全的ExchangeSe…
- 防火墙环境中DNS的配置…
- 怎么设置Qmail用户邮箱的容…
- 如何做好Exchange200…
- Win2003+IIS6.0环…
- 如何做好Exchange200…
- redhat8.0自带send…
- QQ聊天服务器完全架设指南…
- 针对Win2000优化Web服…
- ExchangeServer2…
- Apache+Tomcat实现…
- BulletProof FTP…
- Exchange2003Ser…
- ExchangeServer2…
- Serv-U3.0的Domai…
- 政府Web网站的创建与管理…
- 使用Exchange2003防…
- 在Linux下建立强大的FTP…
- 如何利用qmail防止垃圾邮件…
- FTP服务器如何实现安全性 上…