我有少量的邮件用户(大约 100 个),有些人有相对较大的(10Gb+)邮箱。我正在使用 postfix 和 dovecot Maildir 格式运行 Ubuntu。
我可以继续添加存储,但也许更便宜的方法是提取比阈值更旧和更大的附件,然后在自动删除之前将它们放在供用户下载的地方(例如 S3)?不知道如何做到这一点。
别人做什么?
我也想过压缩超过一定年龄的邮件,但我不确定这是否会释放很多空间。
我正在运行 IMAPS 服务,并且用户使用 X.509 证书进行身份验证。使用 Thunderbird 可以正常工作。但是如何使用 openssl 手动连接到 IMAPS 服务?我在 Thunderbird 中使用与openssl s_client
than 相同的证书,但我没有经过身份验证。
$ openssl s_client -connect $myimapsserver:993 -key my.key -cert my.crt -quiet
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = $myimapsserver
verify return:1
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN ACL ACL2=UNION AUTH=EXTERNAL ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2019 Double Precision, Inc. See COPYING for distribution information.
我正在 Thunderbird 邮件客户端中配置 POP 和 IMAP 帐户。
这里有 2 个选项:
安全:
身份验证方法:
我有 2 个邮件帐户:一个是 POP,另一个是 IMAP 帐户。
我想确保没有人可以通过嗅探网络来监听我的密码和任何邮件内容。
我试过“SSL/TLS”和“STARTTLS”选项。他们都工作。但我的邮件服务器只支持“普通密码”选项。
你能确认我 SSL/TLS 和 STARTTLS 完全加密连接并且没有人可以嗅探任何东西(密码和内容)吗?
非常感谢
我正在尝试设置 fetchmail 以使用 pop3 从 gmail 下载一些邮件。如您所见,问题在于 fetchmail 而不是使用 pop 协议将使用 imap。
为了确保在配置过程中不犯任何错误,我将总结该过程:
我在 /etc/default 文件夹中编辑了名为“fetchmail”的文件,并将变量 demo 设置为“yes”;
现在我在文件夹 /etc 中创建了配置文件“fetchmailrc”。在这篇文章中,我写道:
set postmaster "root"
set daemon 600
poll pop.gmail.com with proto POP3
user '[email protected]' there with password 'secretPWD' is root here options ssl
然后我继续进行测试,看看它是否使用命令:“fetchmail -d0 -vk pop.gmail.com”。该命令的响应如下:
fetchmail: 6.4.2 querying pop.gmail.com (protocol auto) at Mon Jul 12 12:43:41 2021: poll started
fetchmail: 6.4.2 querying pop.gmail.com (protocol IMAP) at Mon Jul 12 12:43:41 2021: poll started
Trying to connect to 173.194.69.109/143...connection failed.
fetchmail: connection to pop.gmail.com:imap [173.194.69.109/143] failed: Connection timed out.
Trying to connect to 173.194.69.108/143...connection failed.
fetchmail: connection to pop.gmail.com:imap [173.194.69.108/143] failed: Connection timed out.
Trying to connect to 2a00:1450:4013:c00::6c/143...connection failed.
fetchmail: connection to pop.gmail.com:imap [2a00:1450:4013:c00::6c/143] failed: Network is unreachable.
Trying to connect to 2a00:1450:4013:c00::6d/143...connection failed.
fetchmail: connection to pop.gmail.com:imap [2a00:1450:4013:c00::6d/143] failed: Network is unreachable.
fetchmail: Connection errors for this poll:
name 0: connection to pop.gmail.com:imap [173.194.69.109/143] failed: Connection timed out.
name 1: connection to pop.gmail.com:imap [173.194.69.108/143] failed: Connection timed out.
name 2: connection to pop.gmail.com:imap [2a00:1450:4013:c00::6c/143] failed: Network is unreachable.
name 3: connection to pop.gmail.com:imap [2a00:1450:4013:c00::6d/143] failed: Network is unreachable.
IMAP connection to pop.gmail.com failed: Network is unreachable
fetchmail: 6.4.2 querying pop.gmail.com (protocol IMAP) at Mon Jul 12 12:48:02 2021: poll completed
fetchmail: 6.4.2 querying pop.gmail.com (protocol auto) at Mon Jul 12 12:48:02 2021: poll completed
fetchmail: Query status=2 (SOCKET)
fetchmail: normal termination, status 2
我可以假设,fetchmail 试图强制 imap 协议而不是 pop。我完全不明白为什么要这样做。
也许我的低意识让我错过了一些东西。现在我正在开发最新版本的 Ubuntu 服务器。非常感谢您的关注,我很抱歉我的英语不好。
PS我知道不鼓励使用root帐户,但现在我只做一些尝试。当我了解如何配置 fetchmail 后,下一步是使用 postfix、dovecot 和 fetchmail 设置一个完整的邮件服务器。另外,我已经知道 getmail 的存在以及他非常简单的设置。但现在我想了解这个错误的原因。
首先我想说的是,我还没有看到任何其他论坛或帖子清楚地解释了这件事。如果有的话,我糟糕的英语技能可能没有让我清楚地理解解决方案。
正如您已经了解的那样,我正在尝试设置一个内部电子邮件服务器来从某些提供商处下载邮件。在寻找最佳软件组合时,我多次遇到 Postfix (MTA) 和 Dovecot (MDA) 组合。到目前为止没有问题,直到我注意到许多用户正在使用第三个软件,它可以是 Getmail 或 Fatchmail。当 Dovecot 已经在执行 MDA 任务时,我完全不明白为什么他们使用这 3 个组合。为什么我还应该包含 Fetchmail 或 Getmail?我应该这样做以同时使用 pop 和 IMAP,还是取决于我想如何从客户端下载或访问邮件?
如果我的英语难以理解,我深表歉意,并提前感谢您的关注
假设我有两个虚拟用户:[email protected]
和[email protected]
.
我希望邮箱bugs
配置如下...:
mailbox Sent {
special_use = \Sent
}
mailbox Drafts {
special_use = \Drafts
}
mailbox "Priority 1" {
auto = subscribe
}
mailbox "Priority 2" {
auto = subscribe
}
mailbox "Priority 3" {
auto = subscribe
}
mailbox Unreplied {
auto = subscribe
}
mailbox Resolved {
auto = subscribe
}
...但是邮箱admin
配置了一些不同的文件夹:
mailbox Sent {
special_use = \Sent
}
mailbox Drafts {
special_use = \Drafts
}
mailbox System {
auto = subscribe
}
mailbox DMARC {
auto = subscribe
}
mailbox Archives {
auto = create
special_use = \Archive
}
mailbox Trash {
special_use = \Trash
}
mailbox Spam {
auto = create
special_use = \Junk
}
我不希望将电子邮件的文件夹bugs
复制到admin
电子邮件中,反之亦然。
我尝试的是使用命名空间,然后通过我的 passwd 文件设置每个虚拟用户的收件箱命名空间名称,如下所示:
admin:<password>::::::userdb_mail=maildir:/home/mail/admin NAMESPACE=primary userdb_namespace/primary/inbox=yes userdb_namespace/primary/list=yes userdb_namespace/primary/prefix=primary/
bugs:<password>::::::userdb_mail=maildir:/home/mail/bugs NAMESPACE=bugs userdb_namespace/bugs/inbox=yes userdb_namespace/bugs/list=yes userdb_namespace/bugs/prefix=bugs/
但 Dovecot 的日志说:
namespace configuration error: Duplicate namespace prefix: "" in=0 out=408 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
我的完整15-mailboxes.conf
:
namespace bugs {
list = no
type = private
mailbox Sent {
special_use = \Sent
}
mailbox Drafts {
special_use = \Drafts
}
mailbox "Priority 1" {
auto = subscribe
}
mailbox "Priority 2" {
auto = subscribe
}
mailbox "Priority 3" {
auto = subscribe
}
mailbox Unreplied {
auto = subscribe
}
mailbox Resolved {
auto = subscribe
}
}
namespace primary {
list = no
type = private
mailbox Sent {
special_use = \Sent
}
mailbox Drafts {
special_use = \Drafts
}
mailbox System {
auto = subscribe
}
mailbox DMARC {
auto = subscribe
}
mailbox Archives {
auto = create
special_use = \Archive
}
mailbox Trash {
special_use = \Trash
}
mailbox Spam {
auto = create
special_use = \Junk
}
}
我在 CentOS 7 上使用了cyberpanel,并为我的 postfix 和 dovecot 设置了 SSL。但是即使我使用 Lets Encrypt 配置了 SSL,我仍然得到“SSL 无效”导致自签名 SSL。
这是 /etc/postfix/main.cf
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.domain.net/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.domain.net/privkey.pem
这是 /etc/dovecot/dovecot.conf
ssl_cert = </etc/letsencrypt/live/mail.domain.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.domain.net/privkey.pem
....
local_name mail.domain.net {
ssl_cert = </etc/letsencrypt/live/mail.domain.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.domain.net/privkey.pem
}
local_name mail.sub.domain.net {
ssl_cert = </etc/letsencrypt/live/mail.sub.domain.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.sub.domain.net/privkey.pem
}
这是 /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.domain.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.domain.net/privkey.pem
所有文件都指向正确的 SSL 文件。但是,当我尝试使用 SSL 登录 IMAP 和 SMTP 时,出现错误:SSL 无效导致自签名证书www.example.com(不是 mail.domain.net)。
当我使用命令检查时: openssl s_client -servername mail.domain.net -connect mail.domain.net:993
CONNECTED(00000003)
depth=0 C = US, ST = Denial, L = Springfield, O = Dis, CN = www.example.com
verify error:num=18:self signed certificate
verify return:1
depth=0 C = US, ST = Denial, L = Springfield, O = Dis, CN = www.example.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com
i:/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDizCCAnOgAwIBAgIJAJDbjRXJistMMA0GCSqGSIb3DQEBCwUAMFwxCzAJBgNV
BAYTAlVTMQ8wDQYDVQQIDAZEZW5pYWwxFDASBgNVBAcMC1NwcmluZ2ZpZWxkMQww
CgYDVQQKDANEaXMxGDAWBgNVBAMMD3d3dy5leGFtcGxlLmNvbTAeFw0yMTA2Mjcx
NzI0MDBaFw0zMTA2MjUxNzI0MDBaMFwxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZE
ZW5pYWwxFDASBgNVBAcMC1NwcmluZ2ZpZWxkMQwwCgYDVQQKDANEaXMxGDAWBgNV
BAMMD3d3dy5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAMlprp3IA+Hbl43gIyiv0VQ/8DGKI3hH1E2GnVCuZKHbiwQr/j1vtnJIsFUt
r6AVwW+LAvDVT723CgivZMiXtrO1ItsOoU9ifV6w+nak8cFsFJZKaprXgU6dlQk8
K0xVMvqTEJa29v1igusmpl9Kv80cPjUCEMfcIjxvo51Ob0rV3Eyale+yXImj9Va/
YU7aICSvuLlHkPGf8VRtu+HZOyhzBerROikUN6p2hqMIjK2SUh0uUzbBFRwZHL6O
e2E9Bq2QQ0Cr5Fpid/XPwDPdxnGdnGcjNWv14vqeRDwErGpjGzn3FyiXQdAoB3wG
jJauwCAm680NMuH/mTVvUcal1CcCAwEAAaNQME4wHQYDVR0OBBYEFLAfEGhJad43
w9Pf90yeZg3i/AYtMB8GA1UdIwQYMBaAFLAfEGhJad43w9Pf90yeZg3i/AYtMAwG
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJifYgBsDverQjQ+3x8GWbmz
T4qw4uxlPLal8+wZrmuFxkTdXBixtd7xT3J7NPpXK1I/i9SUMsT9EqwMpvtz8Ybi
409QvsCb/LyADPI4eorbGIByYZa+wTHNbLtMa+PybwoHsLANGvwVf35tuXWhV2u7
/PxxvwZwPRXyDiNZYl6CXm282eqUu2iVU7j5+Mon5OCWN82Z5rUU67DFKyhyE6MC
j4tsWO5ylBKhhZ7A5EJd0gqSSIo495XnaNazXr2KeTOfwrBPOj2dHO1CnMnkubJm
wd31QwGht2wX/yGBtRNk+fxrA4ObKgva/bRLYpcZr6axva+vMFmJ2bVC1W3pUmU=
-----END CERTIFICATE-----
subject=/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com
issuer=/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 1590 bytes and written 441 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: 88F2CCFDE63FE391E9824F596E0C8300E44CB306F969E2A1C0AFE3B75E5A4D74
Session-ID-ctx:
Master-Key: E22198E25F15AA193B9E73446CB934276DF90987DFC75B1B74DDAF3247CA8436CDB93B3274102188B3470DF1A4EFB0D1
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - e6 78 ae 14 e1 04 0d b4-64 82 65 9e 14 ad 32 9c .x......d.e...2.
0010 - f3 f0 c2 fd f9 12 5b bf-0f 50 75 79 64 5c bb ba ......[..Puyd\..
0020 - 31 f6 37 bd 1c b2 e7 dc-d9 02 c7 53 f4 f9 0c a6 1.7........S....
0030 - d4 51 6a 60 6b 34 04 41-fd b3 7d 53 14 ff 1d b4 .Qj`k4.A..}S....
0040 - a2 82 67 6e da d7 80 02-b0 9f 6d 82 b4 17 72 cf ..gn......m...r.
0050 - 30 05 54 fc 8c be 60 6d-e5 0f b8 25 04 f3 43 6d 0.T...`m...%..Cm
0060 - 7e 13 f1 85 02 03 90 a2-50 82 64 43 aa 79 b8 ee ~.......P.dC.y..
0070 - 86 08 ef 7a ac 4b c7 86-57 bc 09 a4 9a bb 23 92 ...z.K..W.....#.
0080 - cb 18 74 a4 90 c5 b1 8b-39 3c cc 69 ee e8 fb 08 ..t.....9<.i....
0090 - 60 93 ea 17 35 d5 58 0d-ee 1b 68 c2 98 d0 e9 9c `...5.X...h.....
00a0 - f5 a7 24 9b 29 0a 48 6b-70 f8 a5 9a 7c e5 e8 88 ..$.).Hkp...|...
Start Time: 1624855926
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
---
+OK Dovecot ready.
这是登录邮件服务器。systemctl 状态后缀 -l
230, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=<RLYR5sLFeh62/Xx7>
Jun 28 00:42:37 mail-domain-net dovecot[574952]: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=182.253.XXX.XXX, lip=10.5.224.230, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=<WF4U5sLFlym2/Xx7>
Jun 28 00:42:38 mail-domain-net dovecot[574952]: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=182.253.XXX.XXX, lip=10.5.224.230, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=<nasX5sLFoim2/Xx7>
Jun 28 00:42:38 mail-domain-net dovecot[574952]: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=182.253.XXX.XXX, lip=10.5.224.230, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=<BFYY5sLFrCm2/Xx7>
Jun 28 00:42:38 mail-domain-net dovecot[574952]: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=182.253.XXX.XXX, lip=10.5.224.230, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=<YQkZ5sLFrSm2/Xx7>
请帮助我,我应该检查哪个文件或配置。
RFC 标准从字面上强制我们接受端口上的未加密连接25
。要了解原因,我们必须了解电子邮件的工作原理。但是电子邮件是一个相当复杂的主题,我创建了这个示例和一个表格来尝试理解所有内容。
任何人都可以阅读并告诉我我在解释的任何部分是否有误吗?因为我不太确定我对这个话题的理解是否正确。
当用户(发件人)通过“邮件用户代理” (MUA)发送电子邮件时,该电子邮件会立即转移到位于或不在单独机器上的“邮件提交代理” (MSA)。MSA 对电子邮件进行预处理并将其交给同一台机器上的“邮件传输代理” (MTA)。然后 MTA(发件人)使用 DNS 并确定应将电子邮件发送到哪个 MTA(收件人)。这部分传输仅通过 port 完成25
。当 MTA(接收者)收到电子邮件时,它会将其处理到同一台机器上的 MSA,然后用户(接收者)可以使用 MUA 阅读电子邮件。
MUA & MSA 和 MSA & MTA 之间的通信可以使用安全端口,但 MTA 和 MTA 之间的连接不能。下表显示了使用或可以使用的协议以及上述示例的每个步骤可以使用的端口。我们还使用 ✘ 和 ✔ 来表示现代设置应该使用什么。
# | 发件人 | 接收者 | 我们可以使用的协议 | 各自协议的端口 |
---|---|---|---|---|
1 | MUA | MSA | (✘) SMTP (✔) SMTPS |
(✘) 25 (✔) 587 |
2 | MSA | MTA | (✘) SMTP (✔) SMTPS |
(✘) 25 (✔) 587 |
3 | MTA | MTA | (✔) SMTP | (✔)25 |
4 | MTA | MSA | (✔) SMTP | (✔)25 |
5 | MSA | MUA | (✘) POP3 (✘) POP3S (✘) IMAP (✔) IMAPS |
(✘) 110 (✘) 995 (✘) 143 (✔) 993 |
上个月,我们发现 Outlook 出现了一个新问题。Outlook 正在生成具有有效信封收件人但无效正文标题收件人的电子邮件。因为接收用户在 Body-To 上回复以制定回复,所以任何抄送用户都无法制定有效的回复收件人列表。
在每种情况下,看到此问题的用户都是混合 Office-365 和 Corporate-IMAP 用户。这是我们为演示问题而捕获的 SMTP 会话示例
220 smtp.server.com ESMTP Sendmail 8.15.2/8.15.2/Debian-8;
HELO: LTUser
250 smtp.server.com Hello LTUser, pleased to meet you
mail from: <[email protected]>
250 2.1.0 <[email protected]>... Sender ok
RCTP TO: <[email protected]>
250 2.1.0 <[email protected]>... Sender ok
DATA
354 Enter mail, end with "." on a line by itself
From: <[email protected]>
To: "Another User"
请注意“收件人:”标题是他们的显示名称,而不是收件人的实际电子邮件地址。
我们尝试过刷新 PST/OST 文件、重新添加 Outlook 配置文件、刷新自动完成条目。
看起来 Outlook 使用了来自 O365-GAL 条目的显示名称,但从不费心制定有效的收件人。