Я пытаюсь настроить почтовый сервер на экземпляре 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
alias_database = hash:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix delay_warning_time = 4h disable_vrfy_command = yes inet_interfaces = all local_recipient_maps = mailbox_size_limit = 0 maximal_backoff_time = 8000s maximal_queue_lifetime = 7d minimal_backoff_time = 1000s mydestination = $mydomain, $myhostname, localhost, localhost.localdomain mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mynetworks_style = host myorigin = mymailexample.co.uk readme_directory = no recipient_delimiter = + relayhost = smtp_helo_timeout = 60s smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl, reject_rbl_client dnsbl.njabl.org smtpd_data_restrictions = reject_unauth_pipelining smtpd_delay_reject = yes smtpd_hard_error_limit = 12 smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit smtpd_recipient_limit = 16 smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit smtpd_sender_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit 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 = yes unknown_local_recipient_reject_code = 450 virtual_alias_maps = mysql:/etc/postfix/mysql_alias.cf virtual_gid_maps = static:5000 virtual_mailbox_base = /var/spool/mail/virtual virtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf virtual_uid_maps = static:5000
Правка> Это результат concat(home,'/',maildir)
из запроса SQL - вы можете видеть, что почтовый каталог заканчивается косой чертой /
/var/spool/mail/virtual/myuser/
Решено> Я заметил в журнале mail.log следующее>
postfix/trivial-rewrite[16423]: warning: do not list domain mymailexample.co.uk in BOTH mydestination and virtual_mailbox_domains .. postfix/virtual[17251]: 149535DC7: to=, relay=virtual, delay=0.14, delays=0.12/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Я обновил /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 (delivered to maildir)
Как задокументировано, для доставки в формате maildir, расположение почтового ящика должен заканчиваться косой чертой:
joe@example.com example.com/joe/
Это, и только это, указывает postfix доставить его почтовому ящику.
Конечно, могут быть и другие проблемы, мешающие его работе, но мы не знаем.