postfix/dovecot:电子邮件确实到达,但“邮件”命令对我来说说“没有邮件”(加上来自字段的问题)

postfix/dovecot:电子邮件确实到达,但“邮件”命令对我来说说“没有邮件”(加上来自字段的问题)

Ubuntu 20.04 LTS 采用静态 IP 连接。

我已经设置postfixdovecot使用Maildir/。我可以发送消息(尽管收件人那一端的回复地址不正确),并且我接收电子邮件。但奇怪的是,当我mail在终端上运行命令时,它显示No mail for jarett。其他一切都正常。所有测试均未显示任何错误。DNS 也正确设置。防火墙(路由器和计算机)设置正确。我就是搞不明白为什么它mail没有接收它(过去它接收过,但是...配置和调整搞砸了)!我已经解决了所有问题,除了这个问题。坦率地说,我不太熟悉这个主题,所以我承认我很难向谷歌提出这个问题,因此,我发表了这篇文章。

我已经将 postfix 和 dovecot 的邮箱类型设置为 ~/Maildir。许多搜索都表明应该有一个指向此文件夹的环境变量,但最初并没有。将“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(例如来自终端的命令:)时,gmail 说它来自“jarett@www”而不是“echo "this is the body" | mail -s "test 1" "[email protected]"[电子邮件保护]“我到底做了什么?我应该更改hostname我的域名吗?

我希望我为您提供了所需的一切,如果我遗漏了什么或解释得不好,请不要责怪我。我正在寻求友好的建议,但对于电子邮件服务器这方面我还是菜鸟(天哪,真是个兔子洞)。

真诚的 Jarett

答案1

首先,为了阅读你的邮件,你需要安装传家宝-mailx.仅此版本的mail命令支持Maildir格式的邮箱。

至于外发邮件的域名,这是由于 Debian 坚持不遵循用其完全合格域名命名主机的最佳实践而导致的。(但不要这样做,否则各种 Debianisms 可能会崩溃)。要解决此问题,请在 中设置myorigin=为您的基本域名(例如example.com,而不是www.example.com/etc/postfix/main.cf

答案2

问题现已解决。安装了“mutt”(因为 heirloom 无法达到效果),并按照 Michael 的建议修改了“myorigin”(此外,为了方便记忆,将邮件别名为 mutt)。我不知道如何将此主题标记为已解决。

相关内容