Назад | Перейти на главную страницу

postfix / dovecot: электронная почта действительно приходит, но команды «mail» говорят «нет почты» для меня (плюс проблема с полем)

Ubuntu 20.04 LTS на статическом IP-соединении.

Я установил postfix и dovecot использовать Maildir/. Я могу отправлять сообщения (хотя адрес для ответа на стороне получателя неправильный), и я жестяная банка и делать получать электронные письма. Как ни странно, когда я запускаю mail команда на моем терминале, он говорит No mail for jarett. Все остальное работает. Все тесты нигде не показывают ошибок. DNS тоже настроен правильно. Брандмауэр (и маршрутизатор, и компьютер) настроены правильно. Я просто не могу понять, почему mail не берет его (когда это было раньше, но ... конфигурация и настройка все испортили)! С тех пор я решил все проблемы, кроме этой. Я не очень разбираюсь в этой теме, поэтому признаю, что мне трудно задать Google этот вопрос, а значит, и этот пост.

Я установил тип почтового ящика ~ / Maildir для postfix и dovecot. Многие поисковые запросы утверждают, что должна быть переменная среды, указывающая на эту папку, но изначально ее не было. Добавление "MAIL = ~ / Maildir /" в .bashrc не помогает! Итак, вот моя конфигурация для postfix и dovecot:

Содержание /etc/postfix/main.cf:

smtpd_banner=$myhostname ESMTP $mail_name (Ubuntu)
biff=no
append_dot_mydomain=no
readme_directory=no
compatibility_level=2
home_mailbox = Maildir/

# TLS parameters
smtpd_use_tls=yes
smtp_tls_security_level=may
smtp_tls_note_starttls_offer=yes
smtpd_tls_security_level=may
smtpd_tls_cert_file=/etc/letsencrypt/live/night-stand.ca/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/night-stand.ca/privkey.pem
smtpd_tls_auth_only=yes
smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database=btree:${data_directory}/smtp_scache

smtpd_sasl_type=dovecot
smtpd_sasl_path=private/auth
smtpd_sasl_auth_enable=yes
smtpd_sasl_security_options=noanonymous, noplaintext
smtpd_sasl_tls_security_options=noanonymous

smtpd_helo_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_invalid_helo_hostname,
        reject_non_fqdn_helo_hostname
smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_recipient,
        reject_unknown_recipient_domain,
        reject_unlisted_recipient,
        reject_unauth_destination
smtpd_sender_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_sender,
        reject_unknown_sender_domain
smtpd_relay_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        defer_unauth_destination
smtpd_delay_reject=yes
smtpd_helo_required=yes
smtp_always_send_ehlo=yes
smtpd_timeout=30s
smtp_helo_timeout=15s
smtp_rcpt_timeout=15s
smtpd_recipient_limit=40

alias_maps=hash:/etc/postfix/valias
alias_database=hash:/etc/postfix/valias

myhostname=SITE.COM
mydomain=SITE.COM
mydestination=SITE.COM
mynetworks=127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin=$mydomain

relayhost=
mailbox_size_limit=0
recipient_delimiter=+
disable_vrfy_command=yes
strict_rfc821_envelopes=yes
minimal_backoff_time=180s
maximal_backoff_time=3h

inet_interfaces=all
inet_protocols=ipv4

invalid_hostname_reject_code=550
non_fqdn_reject_code=550
unknown_address_reject_code=550
unknown_client_reject_code=550
unknown_hostname_reject_code=550
unverified_recipient_reject_code=550
unverified_sender_reject_code=550

Содержание /etc/dovecot/conf.d/10-mail.conf:

mail_location = maildir:~/Maildir
mail_privileged_group = mail
passdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/users
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vhost/%d/%n
}

О, возможно, вам нужно знать содержимое файла hosts и содержимое имени хоста /etc/hosts:

127.0.0.1  localhost
127.0.0.1  mysiteaddress.tld

/etc/hostname:

www

Наконец, когда я отправляю с почтового сервера в Gmail (например, команду с терминала: echo "this is the body" | mail -s "test 1" "myemailaddy@gmail.com") Gmail сообщает, что он исходит от "jarett @ www" вместо "jarett@mysitesaddress.tld". Что, черт возьми, я сделал? Я должен изменить hostname на мое доменное имя?

Надеюсь, я дал вам все, что вам нужно, и, пожалуйста, не разгребайте меня по углям, если я что-то пропустил или плохо объяснил. Я ищу дружеский совет и, скорее, нуб с этим почтовым сервером (чувак, что за кроличья нора).

С уважением, Джаретт

Теперь проблема решена. Установил «mutt» (потому что семейная реликвия не принесла результатов) и изменил «myorigin», как предложил Майкл (а также, для моей памяти, почту с псевдонимом на mutt). Я не знаю, как отметить эту тему как решенную.

Во-первых, чтобы читать вашу почту, вам необходимо установить семейная реликвия. Только эта версия mail команда поддерживает почтовые ящики в формате Maildir.

Что касается имени домена в исходящей почте, это вызвано тем, что Debian настаивает на несоблюдении передовой практики именования хостов с их полным доменным именем. (Но не делайте этого, иначе различные Debianisms, вероятно, сломаются). Чтобы обойти это, установите myorigin= на ваше базовое доменное имя (например, example.comне www.example.com) в /etc/postfix/main.cf.