Gentoo Archives: gentoo-user

From: Grant Taylor <gtaylor@×××××××××××××××××××××.net>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] tips on running a mail server in a cheap vps provider run but not-so-trusty admins?
Date: Wed, 26 Aug 2020 20:22:08
Message-Id: 0d06cd09-8038-dfd0-b8b7-dad758ccd58b@gentoo.tnetconsulting.net
In Reply to: Re: [gentoo-user] tips on running a mail server in a cheap vps provider run but not-so-trusty admins? by Caveman Al Toraboran
1 On 8/21/20 10:11 PM, Caveman Al Toraboran wrote:
2 > not a major point but just to clarify a thing.
3 >
4 > i think it's unfair to look at SMTP as a single thing that compares
5 > against HTTP*. because while HTTP* is a single-ish thing, SMTP is
6 > several things. i.e. SMTP is at least 2 parts:
7
8 Fair point.
9
10 As I see it, we have two things; 1) what is transferred (email message)
11 and 2) how it is transferred (SMTP, UUCP, etc.).
12
13 > 1. resource exchange layer where people are defined as some kind of
14 > URL (e.g. name@×××.zone) and attachments are base64-ed text balls
15 > referred to by some numbers in RFC822.
16
17 That sounds like the "what is transferred" to me.
18
19 As in the opaque value of the sender / recipient / body / attachments.
20 It does not matter what the contents of those opaque values are. They
21 make up what is transferred.
22
23 > This part overlaps with HTTP*. let's call this "RESXCH_SERVER".
24
25 HTTP(S) can overlap with the "how" part of the transfer.
26
27 But I believe that the HTTP(S) "how" part is independent of the opaque
28 blob part of "what".
29
30 > 2. the part where it defines how to process the exchanged resources
31 > (e.g. safe storage, routing, etc). this part is beyond HTTP*'s scope,
32 > and is the "web app" scope. let's call this "RESUSE_SERVER"
33
34 Okay.
35
36 > of course, email still doesn't work with those 2 parts, because you
37 > need a way to get mails to your email client, so you end up using
38 > POP or IMAP. now, this --itself-- is also two parts:
39
40 That is highly dependent on your email client. Many traditional Unix
41 email clients read email directly off the file system of the email server.
42
43 In fact, most POP3(S) and IMAP(S) implementations read the same data off
44 of the email server. The only difference being that the allow the email
45 client to be remote from the email server.
46
47 I'd like to point out that thus far this thread has been about how to
48 get email between email servers. As such, I think client access
49 protocols are somewhat outside of the existing scope.
50
51 > 1. resource exchange layer to send resources to users. which also
52 > overlaps with HTTP* (again). let's call this "RESXCH_CLIENT".
53
54 The "how".
55
56 > 2. the part where it defines how the mail client to treat the
57 > resources. let's call this "RESUSE_CLIENT".
58
59 See above comment about scope.
60
61 This is also a "how". But "how" clients get email from servers is
62 decidedly different than "how" servers exchange email.
63
64 They can both use any underlying transport, be it TCP (like POP3 & IMAP)
65 or HTTP(S).
66
67 > i disagree. i think this is more like it about the current email
68 > system:
69 >
70 > RESXCH_SERVER / RESUSE_SERVER / RESXCH_CLIENT / RESUSE_CLIENT
71
72 I'm having trouble unpacking that. So I'll provide my version of what I
73 think you're trying to say.
74
75 Since all of this rides on top of TCP, I'm not going to call it out.
76
77 1) The sender (who-sender) sends their email (what) to their outbound
78 email server (who-recipient) with SMTP (how).
79
80 2) (The sender's) outbound server (who-sender) sends (the sender's)
81 email (what) to the (the recipient's) inbound server (who-recipient)
82 with SMTP (how).
83
84 3) The recipient (who-recipient) pulls email (what) from their inbound
85 server (who-sender) with POP3S / IMAPS (how).
86
87 Notice how we have a what, who-sender, who-recipient, and how in each of
88 these. The who-sender and who-recipient are the parties of each
89 discrete conversation; 1, 2, or 3.
90
91 Notice how the what (email) is an opaque blob on each leg of the
92 transmission journey.
93
94 There are four distinct points with three distinct paths in between.
95
96 A) [1]---(SMTP)---[2]---(SMTP)---[3]---(POP3S/IMAPS)---[4]
97
98 1) Person sending the email.
99 2) #1's email server.
100 4) Person receiving the email.
101 3) #4's email server.
102
103 (Yes I know those are not in numerical order. #3 and #4 are in
104 dependency order.)
105
106 The only way to remove a point and transmission path from this process
107 end-to-end process is for #2 and #3 to be the same.
108
109 B) [1]---(SMTP)---[2/3]---(POP3S/IMAPS)---[4]
110
111 Other than mega email providers; Google, Microsoft, Yahoo, et al., you
112 are going to have scenario A above.
113
114 Each step of the way you have what is transferred (the message) and how
115 it is transferred (the protocol) between two points.
116
117 The what (email) is still an opaque blob on each leg of the transfer.
118
119 > it's 4 different layers to exchange mail between people.
120
121 We apparently aren't using layers the same way. You seem to be using
122 layers in place of hops. That is both inaccurate and unfair for a
123 number of reasons.
124
125 There can be any number of additional hops in between # 2 & 3 above for
126 any number of reasons; legal, technical, political, etc.
127
128 > but if we plug HTTP* in the mix, it because only 3 different layers:
129 >
130 > HTTP* / RESUSE_SERVER / HTTP* / RESUSE_CLIENT
131
132 You also seem to be describing scenario B above.
133
134 Here is a variation on scenario A above that is completely realistic if
135 not probable.
136
137 C)
138 [1]---(SMTP)---[2]---(SMTP)---[3]---(SMTP)---[4]---(SMTP)---[5]---(SMTP)---[6]---(POP3S/IMAPS)---[7]
139
140 1) The person sending the email.
141 2) The person sending the email's work SMTP server.
142 3) The ESP server that the sender's employer is using. E.g. their ISP
143 or SendGrid.
144 5) The ESP server that the recipients employer is using. E.g. Postini
145 or MailRoute.
146 6) The person receiving the email's work SMTP server.
147 7) The person receiving the email.
148
149 This completely realistic scenario is more hops but still the same
150 number of layers as scenarios A and B above.
151
152 Scenario A with some layering detail.
153
154 email email email
155 SMTP SMTP POP3S/IMAPS
156 A) [1]---(TCP)---[2]---(TCP)---[3]---(TCP)---[4]
157
158 Now what you are proposing:
159
160
161
162 email email email
163 TBD TBD TBD
164 HTTPS HTTPS HTTPS
165 A) [1]---(TCP)---[2]---(TCP)---[3]---(TCP)---[4]
166
167 The number of layers has increased from three to four.
168
169 The number of hops in the path doesn't matter.
170
171 You can freely replace TCP with UDP (QUIC) or some other transport layer.
172
173 You are free to define your own email exchange protocol in place of TBD
174 in the lower of the two layered diagrams.
175
176 The email layer (opaque contents of the message) is effectively the
177 same. How it's executed doesn't really matter.
178
179 You can't get around the fact that you have /added/ a layer to the stack
180 in between the transport and the email exchange protocol.
181
182 I have not heard any compelling reasons for adding HTTPS in between the
183 email transport protocol (SMTP / TBD) and the underlying network
184 transport protocol (TCP / UDP / ...).
185
186 The only reasons that I have heard are: "there are more libraries"
187 which for me translates to "it's easier (for the developer)" which
188 translates to "laziness".
189
190 NONE of these reasons qualify as "easier" or "better" for email
191 administrators / the email ecosystem to migrate.
192
193 > and it is even nicer for when HTTP* is plugged, because it is also
194 > the protocol used for most of internet's traffic (web browsing).
195
196 It may be the protocol that you see. Trust me when I say that the World
197 Wide Web (which is predominantly HTTP(S)) is a subset of the Internet
198 (which is many, Many, MANY other protocols).
199
200 Email and DNS are probably the most visible things on the Internet that
201 aren't part of the World Wide Web.
202
203 > so basically total expected number of protocols/layers used in the
204 > universe, per second, will be much less if we, on planet earth,
205 > use a mail system that uses HTTP* instead of RESXCH_*.
206
207 I obviously disagree.
208
209
210
211 --
212 Grant. . . .
213 unix || die

Replies