我正在尝试在 Amazon EC2 Micro 实例上设置邮件服务器 - 如下flurdy 的这篇文章。我已经安装了 Postfix、Courier IMAP 和 Squirrel Mail。我一直在测试通过 postfix 发送和接收电子邮件的功能 - 一切正常。我已成功连接到 SquirrelMail - 但收件箱是空白的。
看起来电子邮件文件是在/var/spool/mail/myuser
而不是 处创建的/var/spool/mail/virtual/myuser
。起初我无法连接到 SquirrelMail - 因为 myuser 目录未在 内启动virtual/
。因此我通过以下方式手动添加了它
maildirmake myuser
现在的问题是电子邮件没有存储在/var/spool/mail/virtual/myuser
目录中,而是仍存储在/var/spool/mail/myuser
文件中。
编辑> postconf -n
别名数据库 = 哈希:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases append_dot_mydomain = no biff = 没有 配置目录 = /etc/postfix 延迟警告时间 = 4 小时 disable_vrfy_command = 是 inet_interfaces = 全部 本地收件人地图 = 邮箱大小限制 = 0 最大退避时间 = 8000 秒 最大队列寿命 = 7d minimal_backoff_time = 1000s mydestination = $mydomain,$myhostname,localhost,localhost.localdomain 我的网络 = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mynetworks_style = 主机 myorigin = mymailexample.co.uk readme_directory = 否 收件人分隔符 = + 中继主机 = smtp_helo_timeout = 60 秒 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_client_restrictions = rejection_rbl_client sbl.spamhaus.org,reject_rbl_client blackholes.easynet.nl,reject_rbl_client dnsbl.njabl.org smtpd_data_restrictions = rejection_unauth_pipelining smtpd_delay_reject = 是 smtpd_hard_error_limit = 12 smtpd_helo_required = 是 smtpd_helo_restrictions = permit_mynetworks,warn_if_reject rejection_non_fqdn_hostname,reject_invalid_hostname,允许 smtpd_recipient_limit = 16 smtpd_recipient_restrictions = rejection_unauth_pipelining,permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_destination,允许 smtpd_sender_restrictions = permit_mynetworks,warn_if_reject,reject_non_fqdn_sender,reject_unknown_sender_domain,reject_unauth_pipelining,允许 smtpd_soft_error_limit = 3 smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = 是 未知本地收件人拒绝代码 = 450 virtual_alias_maps = mysql:/etc/postfix/mysql_alias.cf virtual_gid_maps = 静态:5000 虚拟邮箱库 = /var/spool/mail/virtual 虚拟邮箱域 = mysql:/etc/postfix/mysql_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf virtual_uid_maps = 静态:5000
编辑> 这是 SQL 查询的结果concat(home,'/',maildir)
- 您可以看到邮件目录以斜杠结尾/
/var/spool/邮件/虚拟/我的用户/
已解决> 我注意到 mail.log 中有以下内容>
postfix/trivial-rewrite[16423]: 警告:请勿在 mydestination 和 virtual_mailbox_domains 中列出域 mymailexample.co.uk .. postfix/virtual[17251]: 149535DC7: to=,relay=virtual,delay=0.14,delays=0.12/0.01/0/0.01,dsn=2.0.0,status=sent(已送达邮箱)
我更新/etc/postfix/main.cf
到
mydestination = mail.mymailexample.co.uk,localhost,localhost.localdomain
并且成功了。警告消失,日志现在显示(已发送到 maildir)
.. postfix/virtual[17251]: 149535DC7: to=,relay=virtual,delay=0.14,delays=0.12/0.01/0/0.01,dsn=2.0.0,status=sent (已送达 maildir)
答案1
据记载,以便以 maildir 格式传递,邮箱位置必须以斜线结尾:
[email protected] example.com/joe/
这,也仅此而已,告诉 postfix 发送至邮件目录。
当然,可能还有其他问题阻碍它工作,但我们不知道。