mirror of https://github.com/captn3m0/talks.git
Adds email talk
This commit is contained in:
parent
324ef76ba9
commit
c87804e725
|
@ -20,6 +20,7 @@ Various talks & Lectures that I have given
|
|||
18. [Video streaming on Linux](/talks/v4l.html).
|
||||
19. [HPACK - Header Compression in HTTP/2](/talks/hpack/).
|
||||
20. [Sanderson's Laws of Magic](https://docs.google.com/presentation/d/1SNEEh2_i93V64Fnzg8_05vOGjJMSuagX8IyrLt-5xXk/present)
|
||||
21. [multipart-emails](/talks/email-protocols/) - A short talk on how linking with mid/cid schemes works in multipart-emails. Related work: https://github.com/awdeorio/mailmerge/issues/86
|
||||
|
||||
A few more talks that I've done are on my [SpeakerDeck account](https://speakerdeck.com/captn3m0) and my [slides.com](https://slides.com/captn3m0/) profile page.
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Cats!</title>
|
||||
</head>
|
||||
<body>
|
||||
<img src="https://i.imgur.com/u4qSjQL.jpeg">
|
||||
<br>
|
||||
<img src="u4qSjQL.jpeg">
|
||||
<br>
|
||||
<img src='data:image/jpeg;base64,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'/>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,10 @@
|
|||
From: foo1@bar.net
|
||||
To: foo2@bar.net
|
||||
Subject: A simple example
|
||||
Content-Type: text/html; charset=utf-8
|
||||
|
||||
Hi,
|
||||
|
||||
This is a cat pic:
|
||||
|
||||
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABIMDhAOCxIQDxAUExIVGy0dGxkZGzcoKiEtQjpFREA6Pz5IUWhYSE1iTj4/WntcYmtvdHZ0RleAiX9xiGhydHD/2wBDARMUFBsYGzUdHTVwSz9LcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHD/wAARCACBAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtRE...">
|
|
@ -0,0 +1,24 @@
|
|||
From: foo1@bar.net
|
||||
To: foo2@bar.net
|
||||
Subject: A simple example
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/related; boundary="never-graduate";
|
||||
type=Text/HTML
|
||||
--never-graduate
|
||||
Content-Type: Text/HTML; charset=US-ASCII
|
||||
|
||||
to the other body part, for example through a statement such as:
|
||||
<img src="cid:foo4*foo1@bar.net">
|
||||
|
||||
--never-graduate
|
||||
|
||||
Content-ID: <foo4*foo1@bar.net>
|
||||
Content-Type: IMAGE/GIF
|
||||
Content-Transfer-Encoding: BASE64
|
||||
|
||||
R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNvcHlyaWdodCAoQykgMTk5
|
||||
NSBJRVRGLiBVbmF1dGhvcml6ZWQgZHVwbGljYXRpb24gcHJvaGliaXRlZC4A
|
||||
etc...
|
||||
|
||||
--never-graduate--
|
||||
# remember to pitch for RFCs We Love
|
|
@ -0,0 +1,10 @@
|
|||
From: foo1@bar.net
|
||||
To: foo2@bar.net
|
||||
Subject: A simple example
|
||||
Content-Type: text/html; charset=utf-8
|
||||
|
||||
Hi,
|
||||
|
||||
This is a cat pic:
|
||||
|
||||
<img src="https://i.imgur.com/u4qSjQL.jpeg">
|
|
@ -0,0 +1,32 @@
|
|||
POST / HTTP/1.1
|
||||
[[ Less interesting headers ... ]]
|
||||
Content-Type: multipart/form-data; boundary=---------------------------boundary
|
||||
Content-Length: 834
|
||||
|
||||
-----------------------------boundary
|
||||
Content-Disposition: form-data; name="text1"
|
||||
|
||||
text default
|
||||
-----------------------------boundary
|
||||
Content-Disposition: form-data; name="text2"
|
||||
|
||||
aωb
|
||||
-----------------------------boundary
|
||||
Content-Disposition: form-data; name="file1"; filename="a.txt"
|
||||
Content-Type: text/plain
|
||||
Content-ID: <a@example.com>
|
||||
|
||||
Content of a.txt.
|
||||
|
||||
-----------------------------boundary
|
||||
Content-Disposition: form-data; name="file2"; filename="a.html"
|
||||
Content-Type: text/html
|
||||
|
||||
<!DOCTYPE html><title>Content of a.html.</title>
|
||||
|
||||
-----------------------------boundary
|
||||
Content-Disposition: form-data; name="file3"; filename="binary"
|
||||
Content-Type: application/octet-stream
|
||||
|
||||
aωb
|
||||
-----------------------------boundary--
|
|
@ -0,0 +1,6 @@
|
|||
<div>
|
||||
<form>
|
||||
<input type="file" name="">
|
||||
<input type="file" name="">
|
||||
</form>
|
||||
</div>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,202 @@
|
|||
# multipart-encoding in emails
|
||||
\-nemo
|
||||
|
||||
---
|
||||
# history of email RFCs
|
||||
|
||||
Date|RFC|Title
|
||||
----|-----|-----
|
||||
Jun '73|524|A Proposed Mail Protocol
|
||||
Sep '73|561|Standardizing Network Mail Headers
|
||||
Apr '75|680|Message Transmission Protocol
|
||||
May '77|724|Proposed Official Standard for the Format of ARPA Network Messages
|
||||
Nov '77|733|STANDARD FOR THE FORMAT OF ARPA NETWORK TEXT MESSAGES(1)
|
||||
Aug '82|821|SIMPLE MAIL TRANSFER PROTOCOL
|
||||
Aug '82|822|STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
|
||||
Jan '86|974|MAIL ROUTING AND THE DOMAIN SYSTEM
|
||||
Apr '86|983|ISO Transport Services on Top of the TCP
|
||||
May '87|1006|ISO Transport Service on top of the TCP
|
||||
Oct '89|1123|Requirements for Internet Hosts -- Application and Support
|
||||
Dec '89|1138|Mapping between X.400(1988) / ISO 10021 and RFC 822
|
||||
Mar '90|1148|Mapping between X.400(1988) / ISO 10021 and RFC 822
|
||||
May '92|1327|Mapping between X.400(1988) / ISO 10021 and RFC 822
|
||||
Aug '93|1495|Mapping between X.400 and RFC-822 Message Bodies
|
||||
Nov '95|1869|SMTP Service Extensions
|
||||
Mar '97|2111|Content-ID and Message-ID Uniform Resource Locators
|
||||
Jan '98|2156|MIXER (Mime Internet X.400 Enhanced Relay): Mapping between X.400 and RFC 822/MIME
|
||||
Aug '98|2387|The MIME Multipart/Related Content-type
|
||||
Aug '98|2392|Content-ID and Message-ID Uniform Resource Locators
|
||||
Apr '01|2821|Simple Mail Transfer Protocol
|
||||
Apr '01|2822|Internet Message Format
|
||||
Oct '08|5321|Simple Mail Transfer Protocol
|
||||
Oct '08|5322|Internet Message Format
|
||||
|
||||
---
|
||||
|
||||
|
||||
# email protocols
|
||||
|
||||
1. how to talk to an email server (SMTP)
|
||||
- TCP
|
||||
- DNS
|
||||
2. how to format a message?
|
||||
- Media types (MIME)
|
||||
- how to format dates?
|
||||
- html
|
||||
3. how to receive email?
|
||||
- IMAP
|
||||
- POP
|
||||
|
||||
---
|
||||
# mainline
|
||||
|
||||
Date|RFC|Title
|
||||
----|-----|-----
|
||||
Aug '82|821|SIMPLE MAIL TRANSFER PROTOCOL
|
||||
Aug '82|822|STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
|
||||
Apr '01|2821|Simple Mail Transfer Protocol
|
||||
Apr '01|2822|Internet Message Format
|
||||
Oct '08|5321|Simple Mail Transfer Protocol
|
||||
Oct '08|5322|Internet Message Format
|
||||
|
||||
---
|
||||
|
||||
# how to send emails
|
||||
|
||||
Date|RFC|Title
|
||||
----|-----|-----
|
||||
Aug '82|821|SIMPLE MAIL TRANSFER PROTOCOL
|
||||
Apr '01|2821|Simple Mail Transfer Protocol
|
||||
Oct '08|5321|Simple Mail Transfer Protocol
|
||||
|
||||
---
|
||||
|
||||
# how to write emails
|
||||
|
||||
Date|RFC|Title
|
||||
----|-----|-----
|
||||
Aug '82|822|STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
|
||||
Apr '01|2822|Internet Message Format
|
||||
Oct '08|5322|Internet Message Format
|
||||
|
||||
---
|
||||
|
||||
# the multipart-variation
|
||||
|
||||
Date|RFC|Title
|
||||
----|-----|-----
|
||||
Mar '97|2111|Content-ID and Message-ID Uniform Resource Locators
|
||||
Aug '98|2392|Content-ID and Message-ID Uniform Resource Locators
|
||||
|
||||
---
|
||||
|
||||
# what's multi-part?
|
||||
|
||||
```
|
||||
POST / HTTP/1.1
|
||||
[[ Less interesting headers ... ]]
|
||||
Content-Type: multipart/form-data; boundary=--boundary
|
||||
Content-Length: 834
|
||||
|
||||
--boundary
|
||||
Content-Disposition: form-data; name="text1"
|
||||
|
||||
text default
|
||||
--boundary
|
||||
Content-Disposition: form-data; name="text2"
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```
|
||||
From: foo1@bar.net
|
||||
To: foo2@bar.net
|
||||
Subject: A simple example
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/alternate; boundary="never-graduate";
|
||||
--never-graduate
|
||||
Content-Type: Text/HTML; charset=US-ASCII
|
||||
Content-Id: <html.foo1@bar.net>
|
||||
|
||||
This is <strong>My HTML</strong> email.
|
||||
|
||||
--never-graduate
|
||||
|
||||
Content-Id: <plaintext.foo1@bar.net>
|
||||
Content-Type: text/plain
|
||||
|
||||
This is my plaintext email.
|
||||
|
||||
--never-graduate--
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# multi-part-linking
|
||||
|
||||
Date|RFC|Title
|
||||
----|-----|-----
|
||||
Mar '97|2111|Content-ID and Message-ID Uniform Resource Locators
|
||||
Aug '98|2392|Content-ID and Message-ID Uniform Resource Locators
|
||||
|
||||
---
|
||||
|
||||
# multi-part-linking
|
||||
|
||||
Scheme|Name
|
||||
---|---
|
||||
`cid:`|Content ID URL Scheme
|
||||
`mid:`|Message ID URL Scheme
|
||||
|
||||
---
|
||||
|
||||
# definitions
|
||||
|
||||
```
|
||||
content-id = url-addr-spec
|
||||
message-id = url-addr-spec
|
||||
|
||||
url-addr-spec = addr-spec ; URL encoding of RFC 822 addr-spec
|
||||
|
||||
cid-url = "cid" ":" content-id
|
||||
mid-url = "mid" ":" message-id [ "/" content-id ]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# plain english
|
||||
|
||||
* Content and Message IDs are emails
|
||||
* CID/MID URLs are `cid:$CID`, `mid:$MID`, and `mid:$MID/$CID`
|
||||
|
||||
---
|
||||
|
||||
# so how does it work?
|
||||
|
||||
```
|
||||
From: foo1@bar.net
|
||||
To: foo2@bar.net
|
||||
Subject: A simple example
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/related; boundary="never-graduate";type=Text/HTML
|
||||
|
||||
--never-graduate
|
||||
Content-Type: Text/HTML; charset=US-ASCII
|
||||
|
||||
to the other body part, for example through a statement such as:
|
||||
<img src="cid:foo4*foo1@bar.net">
|
||||
|
||||
--never-graduate
|
||||
|
||||
Content-ID: <foo4*foo1@bar.net>
|
||||
Content-Type: IMAGE/GIF
|
||||
Content-Transfer-Encoding: BASE64
|
||||
|
||||
R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNvcHlyaWdodCAoQykgMTk5
|
||||
NSBJRVRGLiBVbmF1dGhvcml6ZWQgZHVwbGljYXRpb24gcHJvaGliaXRlZC4A
|
||||
etc...
|
||||
|
||||
--never-graduate--
|
||||
# remember to pitch for RFCs We Love
|
||||
```
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
// header("Mime-Version: 1.0");
|
||||
header('Content-Type: multipart/x-mixed-replace; boundary="--never-graduate--"');
|
||||
header('Date: Tue, 01 Dec 2009 23:27:30 GMT');
|
||||
header('Vary: Accept-Encoding,User-Agent');
|
||||
?>
|
||||
multipart-not-supported
|
||||
--never-graduate--
|
||||
Content-Type: text/html; charset=utf-8
|
||||
Content-Base: http://localhost:1111/
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="http://localhost:2080/file.css">
|
||||
</head>
|
||||
<body>
|
||||
Hello from a html
|
||||
<script type="text/javascript" src="http://localhost:2080/file.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
--never-graduate--
|
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
Loading…
Reference in New Issue