我有一个新的邮件服务器,如本指南中所述:http : //howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu-9.10
我也有一个配置非常相似的古老邮件服务器(使用相同的 HOWTO,如果我没记错的话,只适用于 Fedora Core 6)。
今天早些时候我不得不从旧服务器切换到新服务器,旧服务器不再在线。然而,在我迁移完所有内容并重新切换之后,我发现队列中有一堆未送达的邮件。它被传送到旧服务器上的本地邮箱,所以现在上面有一堆我想移动到新服务器的消息。新服务器已经收到新消息,所以我需要以某种方式将文件合并在一起。
对于电子邮件为 username@customer.com 的每个用户,两台服务器上都有这样的文件:
/home/vmail/customer.com/username/maildirsize /home/vmail/customer.com/username/courierpop3dsizelist /home/vmail/customer.com/username/new/1271481177.Vca01I6006bM580357.mailhost.mydomain.com
我可以简单地将旧服务器上各种新目录中的数百个文件复制到新服务器上相应的新目录中吗?请问maildirsize和courierpop3dsizelist文件被自动更新,或者我需要做一些更新吗?
预计卷大小约为 1TB。在处理每个文件夹中的大量文件时,文件系统应该快速执行。
快照支持会很好,用于备份目的,但不是强制性的。
它将在硬件 RAID 0+1 系统上创建,但我几乎不怀疑这将是一个问题。
我正在新的操作系统中安装新的邮件服务器 (Postfix/Dovecot+Maildir)。
使用 Thunderbird(或 Squirrelmail)我可以发送邮件,但即使我可以在/home/<mailuser>/Maildir/new.
可能是什么问题呢?如有必要,我会附上任何 conf 文件。
编辑:dovecot 配置mail_location = maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/
就像 Damiano 说的那样,Postfix 和 Dovecot 邮件文件夹不匹配。
我试图意识到哪个配置告诉了 cur、tmp 和 new 的创建位置。当然,我一直在使用虚拟用户,我接收和发送邮件到virtualuser/domain/user/Maildir/new和virtualuser/Maildir/cur(我认为virtualuser/domain/user/Maildir/tmp是非常临时的,从来没有收到和发送电子邮件)但是当我使用 Postfixadmin 创建一个新邮箱时,它是这样创建的
virtualuser/domain/user/tmp
virtualuser/domain/user/new
virtualuser/domain/user/cur
Run Code Online (Sandbox Code Playgroud)
然后我只需要将这个树文件夹移动到里面
virtualuser/domain/user/Maildir (this is how i would I would like to be created) so I would have:
virtualuser/domain/user/Maildir/cur
virtualuser/domain/user/Maildir/tmp
virtualuser/domain/user/Maildir/new
Run Code Online (Sandbox Code Playgroud)
那么在哪个配置文件中有这个设置呢?是 Postfix、Dovecot 还是 Postfixadmin?
另外我有这个conf:
# Postfix:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
local_recipient_maps = $virtual_mailbox_maps
local_transport …Run Code Online (Sandbox Code Playgroud) 我设置了/etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = example.com, example02.com, mail01.example.local, localhost.example.local, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox=Maildir/
Run Code Online (Sandbox Code Playgroud)
和
/etc/init.d/postfix 重启
但是..您在 /var/mail/user 中有新邮件
为什么?怎么了?
假设您有一个包含数万条消息的目录。并且您想将垃圾邮件与非垃圾邮件分开。
具体来说,您希望:
您可以运行什么命令来完成此操作?例如,一些伪代码:
/usr/local/bin/spamassassin -eL ./Maildir/cur/* | grep "X-Spam-Flag: YES" | mv %1 /tmp/spam
Run Code Online (Sandbox Code Playgroud) 在 中/home/myusername/mail/mysite.com/info/cur,有我所有原始电子邮件的列表,看起来像这样......
1378731701.H58419P6671.mail.myhost.com,S\=6894:2,
1378732793.H58419P6672.mail.myhost.com,S\=24522:2,RS
1378733176.H58419P6673.mail.myhost.com,S\=6445:2,RS
1378733371.H58419P6674.mail.myhost.com,S\=29152:2,S
1378388419.H58419P6675.mail.myhost.com,S\=2896:2,FRS
1365606132.H58419P6676.mail.myhost.com,S\=1516:2,DFS
1374222137.H58419P6677.mail.myhost.com,S\=1540:2,
1378731776.H58419P6678.mail.myhost.com,S\=8000:2,DST
Run Code Online (Sandbox Code Playgroud)
我猜测 S\= 后面的数字是消息 ID,后面是状态代码。
我的第一个猜测是 D = 草稿,R = 已读,S = 已发送,F = 已标记,T = 已删除或其他。但“2”是什么意思呢?
哪里有翻译这些状态代码的参考/指南?
maildir ×7
postfix ×4
dovecot ×2
email ×2
email-server ×2
courier ×1
filesystems ×1
grep ×1
imap ×1
performance ×1
scripting ×1
spam ×1
spamassassin ×1