sendmailSMTP je textov?? protokol nad TCP na porte 25. [1] Po naviazan?? TCP spojenia, server za??le svoju identifik??ciu, na ??o klient po??le HELLO s n??zvom svojej dom??ny. MAIL FROM ??pecifikuje n??vravov?? adresu (return-path/bounce address/reverse path/envelope from).
S: 220 smtp.example.com ESMTP Postfix
C: HELO relay.example.com
S: 250 smtp.example.com, I am glad to meet you
C: MAIL FROM:<bob@example.com>
S: 250 Ok
C: RCPT TO:<alice@example.com>
S: 250 Ok
C: RCPT TO:<theboss@example.com>
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: "Bob Example" <bob@example.com>
C: To: Alice Example <alice@example.com>
C: Cc: theboss@example.com
C: Date: Tue, 15 Jan 2008 16:02:43 -0500
C: Subject: Test message
C:
C: Hello Alice.
C: This is a test message with 5 header fields and 4 lines in the message body.
C: Your friend,
C: Bob
C: .
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye
{The server closes the connection}
Emailov?? hlavi??ka mus?? obsahova?? minim??lne polia From a Date. From obsahuje mail a pr??padne meno autora mailu. Nemus?? zodpoveda?? skuto??n??mu odosielate??ovi (MAIL FROM) Date obsahuje lok??lny ??as odosielate??a pri odoslan??. ??al??ie polia m????u by?? [2]:
To:maily prim??rnych pr??jemcov, pr??padne aj ich men??, nemus?? zodpoveda?? realite (t.j. RCPT TO)Subject: predmet spr??vyCc: po??le mail v k??piiBcc: MTA ho m????e odstr??ni?? a nahradi?? za RCPT TO SMTP pr??kazContent-Type: ??pecifukuje obsah nasleduj??cich d??t, zvy??ajne MIME typMessage-ID: automaticky generovan?? identifik??tor pou????van?? napr. na zabr??nenie viacn??sobn??ho doru??enia tej istej spr??vyIn-Reply-To: obsahuje Message-ID mailu, na ktor?? je tento mail odpove??ouReferences: Message-ID v??etk??ch predchadzaj??cich odpoved??X- u????vate??om definovan?? polia napr. X-Ismu-Affiliation: stud FI MUZoznam v??etk??ch pol?? je dostupn?? na str??nke IANA-y. [3]
Pr??tomnos?? hlavi??ky MIME-Version signalizuje, ??e spr??va je MIME-formatovan??.
Content-Transfer-Encoding m????e ma?? hodnoty:
7bit mail je k??dovan?? v 7-bit ASCII (vyp??sate??n?? znaky a CR, LF)quoted-printable znaky mimo 7-bit ascii sa k??duju ako hexadecim??lny byte s prefixom =. Napr??klad Dobr?? de?? by sa pomocou UTF-8 zak??dovalo na Dobr=C3=BD de=C5=88base64 pre bin??rne d??ta alebo text, ktor?? obsahuje ve??a znakov, ktor?? sa nenach??dzaj?? v ASCII8bit pre servery, ktor?? maj?? 8BITMIME roz????reniebinary pre servery, ktor?? maj?? BINARYMIME roz????renieMIME-Version: 1.0
X-Mailer: MailBee.NET 8.0.4.428
Subject: test subject
To: kevinm@datamotion.com
Content-Type: multipart/mixed;
boundary="XXXXboundary text"
--XXXXboundary text
Content-Type: multipart/alternative;
boundary="XXXXboundary text"
--XXXXboundary text
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
This is the body text of a sample message.
--XXXXboundary text
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
<pre>This is the body text of a sample message.</pre>
--XXXXboundary text
Content-Type: text/plain;
name="log_attachment.txt"
Content-Disposition: attachment;
filename="log_attachment.txt"
Content-Transfer-Encoding: base64
TUlNRS1WZXJzaW9uOiAxLjANClgtTWFpbGVyOiBNYWlsQmVlLk5FVCA4LjAuNC40MjgNClN1Ympl
Y3Q6IHRlc3Qgc3ViamVjdA0KVG86IGtldmlubUBkYXRhbW90aW9uLmNvbQ0KQ29udGVudC1UeXBl
OiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7DQoJYm91bmRhcnk9Ii0tLS09X05leHRQYXJ0XzAwMF9B
RTZCXzcyNUUwOUFGLjg4QjdGOTM0Ig0KDQoNCi0tLS0tLT1fTmV4dFBhcnRfMDAwX0FFNkJfNzI1
RTA5QUYuODhCN0Y5MzQNCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsNCgljaGFyc2V0PSJ1dGYt
OCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUNCg0KdGVzdCBi
b2R5DQotLS0tLS09X05leHRQYXJ0XzAwMF9BRTZCXzcyNUUwOUFGLjg4QjdGOTM0DQpDb250ZW50
LVR5cGU6IHRleHQvaHRtbDsNCgljaGFyc2V0PSJ1dGYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5j
b2Rpbmc6IHF1b3RlZC1wcmludGFibGUNCg0KPHByZT50ZXN0IGJvZHk8L3ByZT4NCi0tLS0tLT1f
TmV4dFBhcnRfMDAwX0FFNkJfNzI1RTA5QUYuODhCN0Y5MzQtLQ0K
--XXXXboundary text--
[4]
From_@ IN MX 10 mail.foo.bar.
@ IN MX 20 backup.foo.bar.
;
mail IN CNAME server1
backup IN A 192.168.0.2
server1 IN A 192.168.0.1
[6]
sendmailPotrebujeme nain??talova?? sendmail a m4 na generovanie konfigura??n??ch s??borov. Ka??d?? u????vate?? mus?? ma?? lok??lny ????et, vytvor??me pomocou useradd -m -s /usr/bin/nologin username Vytvor??me s??bor /etc/mail/sendmail.mc, pr??klad konfigur??cie
include(`/usr/share/sendmail-cf/m4/cf.m4')
define(`confDOMAIN_NAME', `your-domain.com')dnl
FEATURE(use_cw_file)
dnl The following allows relaying if the user authenticates,
dnl and disallows plaintext authentication (PLAIN/LOGIN) on
dnl non-TLS links:
define(`confAUTH_OPTIONS', `A p y')dnl
dnl
dnl Accept PLAIN and LOGIN authentications:
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
dnl
dnl Make sure this paths correctly point to your SSL cert files:
define(`confCACERT_PATH',`/etc/ssl/certs')
define(`confCACERT',`/etc/ssl/cacert.pem')
define(`confSERVER_CERT',`/etc/ssl/certs/server.crt')
define(`confSERVER_KEY',`/etc/ssl/private/server.key')
dnl
FEATURE(`virtusertable', `hash /etc/mail/virtusertable.db')dnl
OSTYPE(linux)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Potom nech??me s??bor spracova??: m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Nastav??me dom??ny, ktor?? tento server obsluhuje v /etc/mail/local-host-names
localhost
your-domain.com
mail.your-domain.com
localhost.localdomain
Nastav??me, odkia?? dovol??me preposiela?? maily v s??bore /etc/mail/access
10.5.0 RELAY
127.0.0 RELAY
Potom nech??me s??bor spracova??: makemap hash /etc/mail/access.db < /etc/mail/access Do s??boru /etc/mail/aliases m????eme prida?? aliasy vo form??te
469348: xzatovic
469430: xnovak
a spracujeme pr??kazom newaliases.
V s??bore /etc/mail/virtusertable sa d?? konfigurova?? mapovanie z mena a dom??ny na konkr??tneho lok??lneho u????vate??a.
your-username@your-domain.com your-username
joe@my-other.tk joenobody
Spracujeme pr??kazom makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable. [7]
https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
https://en.wikipedia.org/wiki/Email#Internet_Message_Format
https://www.iana.org/assignments/message-headers/message-headers.xhtml
https://kb.datamotion.com/?ht_kb=what-does-a-sample-mime-message-look-like
Essential System Administration: Tools and Techniques for Linux and Unix Administration, 3rd Edition
https://fedoraproject.org/wiki/Administration_Guide_Draft/DNS
https://wiki.archlinux.org/index.php/Sendmail