/* * vpopmail2txt jieer xjb@bjsing.net * URL: http://bycd.bjsing.net/vpopmail2txt.c */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <time.h> #include <pwd.h> #include <sys/types.h> #include <dirent.h> #include <sys/stat.h> #include "config.h" #include "vpopmail.h" #include "vauth.h" struct vqpasswd *vpwd = NULL; int conv_domain(char *); int main(int n, char *cmd[]) { if (n < 2 || n > 2) { printf("vpopmail2txt [domainname|all]\n"); return 0; } if (strcasecmp(cmd[1], "all") == 0) { DIR *mydir; char domain[100]; struct dirent *mydirent; if (chdir(VPOPMAILDIR) != 0) { perror("vpopmail2txt: change dir to vpopmail home"); return (-1); } if (chdir(DOMAINS_DIR) != 0) { perror("vpopmail2txt: change dir to vpopmail home"); return (-1); } mydir = opendir("."); if (mydir == NULL) { perror("vpopmail2txt: opendir failed"); return (-1); } while ((mydirent = readdir(mydir)) != NULL) { if (strncmp(mydirent->d_name, ".", 1) == 0) continue; strncpy(domain, mydirent->d_name, 99); printf("converting %s \t\t---->", domain); if (conv_domain(domain) != 0) { printf("failed\n"); } else { printf("done\n"); } } closedir(mydir); } else conv_domain(cmd[1]); return 0; } int conv_domain(char *domain) { FILE *fp; char buf[256]; vpwd = vauth_getall(domain, 1, 0); if (NULL == vpwd) { printf("empty", domain); return -1; } snprintf(buf, 255, "%s.txt%c", domain, 0); if ((fp = fopen(buf, "w")) == NULL) { printf("can not open %s\n", buf); return -2; } while (vpwd != NULL) { fprintf(fp,"%s@%s:%s%s:%s\n", vpwd->pw_name, domain, #ifdef CLEAR_PASS "", vpwd->pw_clear_passwd, #else "{crypt}", vpwd->pw_passwd, #endif vpwd->pw_gecos); vpwd = vauth_getall(domain, 0, 0); } fclose(fp); return 0; } gcc -O2 -I/home/vpopmail/include vpopmail2txt.c -o vpopmail2txt -L/home/vpopmail/lib -lvpopmail 可能根据你的实际情况需要一些库,具体情况根据~vpopmail/etc下的inc_deps,lib_deps确定 如果你用db来存储用户数据,就不用这个程序了~vpopmail/domains/mydomain/下边有这样的列表。 |
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |