Simple Mail Transfer Protocol
Internet protocol suite |
---|
Application layer |
Transport layer |
Internet layer |
Link layer |
The Simple Mail Transfer Protocol (SMTP) is an
SMTP's origins began in 1980, building on concepts implemented on the
History
Predecessors to SMTP
Various forms of one-to-one electronic messaging were used in the 1960s. Users communicated using systems developed for specific mainframe computers. As more computers were interconnected, especially in the U.S. Government's ARPANET, standards were developed to permit exchange of messages between different operating systems. SMTP grew out of these standards developed during the 1970s.
Mail on the ARPANET traces its roots to 1971: the Mail Box Protocol, which was not implemented,
The use of the File Transfer Protocol (FTP) for "network mail" on the ARPANET was proposed in RFC 469 in March 1973.[7] Through RFC 561, RFC 680, RFC 724, and finally RFC 733 in November 1977, a standardized framework for "electronic mail" using FTP mail servers on was developed.[8]
Original SMTP
In 1980,
The SMTP standard was developed around the same time as Usenet, a one-to-many communication network with some similarities.[citation needed]
SMTP became widely used in the early 1980s. At the time, it was a complement to the
The original SMTP protocol supported only unauthenticated unencrypted 7-bit ASCII text communications, susceptible to trivial
Modern SMTP
In November 1995,
Message submission (
As this protocol started out purely ASCII text-based, it did not deal well with binary files, or characters in many non-English languages. Standards such as Multipurpose Internet Mail Extensions (MIME) were developed to encode binary files for transfer through SMTP. Mail transfer agents (MTAs) developed after Sendmail also tended to be implemented 8-bit clean, so that the alternate "just send eight" strategy could be used to transmit arbitrary text data (in any 8-bit ASCII-like character encoding) via SMTP. Mojibake was still a problem due to differing character set mappings between vendors, although the email addresses themselves still allowed only ASCII. 8-bit-clean MTAs today tend to support the 8BITMIME extension, permitting some binary files to be transmitted almost as easily as plain text (limits on line length and permitted octet values still apply, so that MIME encoding is needed for most non-text data and some text formats). In 2012, the SMTPUTF8
extension was created to support UTF-8 text, allowing international content and addresses in non-Latin scripts like Cyrillic or Chinese.
Many people contributed to the core SMTP specifications, among them Jon Postel, Eric Allman, Dave Crocker, Ned Freed, Randall Gellens, John Klensin, and Keith Moore.
Mail processing model
Email is submitted by a mail client (
The boundary MTA uses
@
). The MX record contains the name of the target MTA. Based on the target host and other factors, the sending MTA selects a recipient server and connects to it to complete the mail exchange.
Message transfer can occur in a single connection between two MTAs, or in a series of hops through intermediary systems. A receiving SMTP server may be the ultimate destination, an intermediate "relay" (that is, it stores and forwards the message) or a "gateway" (that is, it may forward the message using some protocol other than SMTP). Per
Once the final hop accepts the incoming message, it hands it to a
Once delivered to the local mail server, the mail is stored for batch retrieval by authenticated mail clients (MUAs). Mail is retrieved by end-user applications, called email clients, using
SMTP defines message transport, not the message content. Thus, it defines the mail envelope and its parameters, such as the
Protocol overview
SMTP is a
- MAIL command, to establish the return address, also called return-path,[17] reverse-path,[18] bounce address, mfrom, or envelope sender.
- RCPT command, to establish a recipient of the message. This command can be issued multiple times, one for each recipient. These addresses are also part of the envelope.
- DATA to signal the beginning of the message text; the content of the message, as opposed to its envelope. It consists of a message header and a message body separated by an empty line. DATA is actually a group of commands, and the server replies twice: once to the DATA command itself, to acknowledge that it is ready to receive the text, and the second time after the end-of-data sequence, to either accept or reject the entire message.
Besides the intermediate reply for DATA, each server's reply can be either positive (2xx reply codes) or negative. Negative replies can be permanent (5xx codes) or transient (4xx codes). A reject is a permanent failure and the client should send a bounce message to the server it received it from. A drop is a positive response followed by message discard rather than delivery.
The initiating host, the SMTP client, can be either an end-user's
A MUA knows the outgoing mail SMTP server from its configuration. A relay server typically determines which server to connect to by looking up the
SMTP vs mail retrieval
SMTP is a delivery protocol only. In normal use, mail is "pushed" to a destination mail server (or next-hop mail server) as it arrives. Mail is routed based on the destination server, not the individual user(s) to which it is addressed. Other protocols, such as the
Remote Message Queue Starting
Remote Message Queue Starting enables a remote host to start processing of the mail queue on a server so it may receive messages destined to it by sending a corresponding command. The original TURN
command was deemed insecure and was extended in
ETRN
command which operates more securely using an authentication method based on Domain Name System information.[19]Outgoing mail SMTP server
An
Outgoing mail server access restrictions
Server administrators need to impose some control on which clients can use the server. This enables them to deal with abuse, for example
- In the past, many systems imposed usage restrictions by the location of the client, only permitting usage by clients whose IP address is one that the server administrators control. Usage from any other client IP address is disallowed.
- Modern SMTP servers typically offer an alternative system that requires authentication of clients by credentials before allowing access.
Restricting access by location
Under this system, an
This system has several variations. For example, an organisation's SMTP server may only provide service to users on the same network, enforcing this by firewalling to block access by users on the wider Internet. Or the server may perform range checks on the client's IP address. These methods were typically used by corporations and institutions such as universities which provided an SMTP server for outbound mail only for use internally within the organisation. However, most of these bodies now use client authentication methods, as described below.
Where a user is mobile, and may use different ISPs to connect to the internet, this kind of usage restriction is onerous, and altering the configured outbound email SMTP server address is impractical. It is highly desirable to be able to use email client configuration information that does not need to change.
Client authentication
Modern SMTP servers typically require authentication of clients by credentials before allowing access, rather than restricting access by location as described earlier. This more flexible system is friendly to mobile users and allows them to have a fixed choice of configured outbound SMTP server. SMTP Authentication, often abbreviated SMTP AUTH, is an extension of the SMTP in order to log in using an authentication mechanism.
Ports
Communication between mail servers generally uses the standard TCP port 25 designated for SMTP.
Mail clients however generally don't use this, instead using specific "submission" ports. Mail services generally accept email submission from clients on one of:
Port 2525 and others may be used by some individual providers, but have never been officially supported.
Many Internet service providers now block all outgoing port 25 traffic from their customers. Mainly as an anti-spam measure,[20] but also to cure for the higher cost they have when leaving it open, perhaps by charging more from the few customers that require it open.
SMTP transport example
A typical example of sending a message via SMTP to two mailboxes (alice and theboss) located in the same mail domain (example.com) is reproduced in the following session exchange. (In this example, the conversation parts are prefixed with S: and C:, for server and client, respectively; these labels are not part of the exchange.)
After the message sender (SMTP client) establishes a reliable communications channel to the message receiver (SMTP server), the session is opened with a greeting by the server, usually containing its fully qualified domain name (FQDN), in this case smtp.example.com. The client initiates its dialog by responding with a HELO
command identifying itself in the command's parameter with its FQDN (or an address literal if none is available).[21]
S: 220 smtp.example.com ESMTP Postfix C: HELO relay.example.org S: 250 Hello relay.example.org, I am glad to meet you C: MAIL FROM:<[email protected]> S: 250 Ok C: RCPT TO:<[email protected]> S: 250 Ok C: RCPT TO:<[email protected]> S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C:From: "Bob Example" <[email protected]>
C:To: "Alice Example" <[email protected]>
C:Cc: [email protected]
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}
The client notifies the receiver of the originating email address of the message in a MAIL FROM
command. This is also the return or bounce address in case the message cannot be delivered. In this example the email message is sent to two mailboxes on the same SMTP server: one for each recipient listed in the To:
and Cc:
header fields. The corresponding SMTP command is RCPT TO
. Each successful reception and execution of a command is acknowledged by the server with a result code and response message (e.g., 250 Ok
).
The transmission of the body of the mail message is initiated with a DATA
command after which it is transmitted verbatim line by line and is terminated with an end-of-data sequence. This sequence consists of a new-line (<CR><LF>
), a single full stop (.
), followed by another new-line (<CR><LF>
). Since a message body can contain a line with just a period as part of the text, the client sends two periods every time a line starts with a period; correspondingly, the server replaces every sequence of two periods at the beginning of a line with a single one. Such escaping method is called dot-stuffing.
The server's positive reply to the end-of-data, as exemplified, implies that the server has taken the responsibility of delivering the message. A message can be doubled if there is a communication failure at this time, e.g. due to a power shortage: Until the sender has received that 250 Ok
reply, it must assume the message was not delivered. On the other hand, after the receiver has decided to accept the message, it must assume the message has been delivered to it. Thus, during this time span, both agents have active copies of the message that they will try to deliver.[22] The probability that a communication failure occurs exactly at this step is directly proportional to the amount of filtering that the server performs on the message body, most often for anti-spam purposes. The limiting timeout is specified to be 10 minutes.[23]
The QUIT
command ends the session. If the email has other recipients located elsewhere, the client would QUIT
and connect to an appropriate SMTP server for subsequent recipients after the current destination(s) had been queued. The information that the client sends in the HELO
and MAIL FROM
commands are added (not seen in example code) as additional header fields to the message by the receiving server. It adds a Received
and Return-Path
header field, respectively.
Some clients are implemented to close the connection after the message is accepted (250 Ok: queued as 12345
), so the last two lines may actually be omitted. This causes an error on the server when trying to send the 221 Bye
reply.
SMTP Extensions
Extension discovery mechanism
Clients learn a server's supported options by using the EHLO
greeting, as exemplified below, instead of the original HELO
. Clients fall back to HELO
only if the server does not support EHLO
greeting.[24]
Modern clients may use the ESMTP extension keyword SIZE
to query the server for the maximum message size that will be accepted. Older clients and servers may try to transfer excessively sized messages that will be rejected after consuming network resources, including connect time to network links that is paid by the minute.[25]
Users can manually determine in advance the maximum size accepted by ESMTP servers. The client replaces the HELO
command with the EHLO
command.
S: 220 smtp2.example.com ESMTP Postfix C: EHLO bob.example.org S: 250-smtp2.example.com Hello bob.example.org [192.0.2.201] S: 250-SIZE 14680064 S: 250-PIPELINING S: 250 HELP
Thus smtp2.example.com declares that it can accept a fixed maximum message size no larger than 14,680,064 octets (8-bit bytes).
In the simplest case, an ESMTP server declares a maximum SIZE
immediately after receiving an EHLO
. According to
SIZE
extension in the EHLO
response is optional. Clients may instead, when issuing a MAIL FROM
command, include a numeric estimate of the size of the message they are transferring, so that the server can refuse receipt of overly-large messages.
Binary data transfer
Original SMTP supports only a single body of ASCII text, therefore any binary data needs to be encoded as text into that body of the message before transfer, and then decoded by the recipient.
The 8BITMIME command was developed to address this. It was standardized in 1994 as
Mail delivery mechanism extensions
On-Demand Mail Relay
On-Demand Mail Relay (ODMR) is an SMTP extension standardized in
Internationalization extension
Original SMTP supports email addresses composed of
SMTPUTF8
command. These extensions provide support for multi-byte and non-ASCII characters in email addresses, such as those with diacritics and other language characters such as Greek and Chinese.[27]Current support is limited, but there is strong interest in broad adoption of
that have a large user base where Latin (ASCII) is a foreign script.Extensions
Like SMTP, ESMTP is a protocol used to transport Internet mail. It is used as both an inter-server transport protocol and (with restricted behavior enforced) a mail submission protocol.
The main identification feature for ESMTP clients is to open a transmission with the command EHLO
(Extended HELLO), rather than HELO
(Hello, the original
HELO
or QUIT
.
Each service extension is defined in an approved format in subsequent RFCs and registered with the Internet Assigned Numbers Authority (IANA). The first definitions were the RFC 821 optional services: SEND
, SOML
(Send or Mail), SAML
(Send and Mail), EXPN
, HELP
, and TURN
. The format of additional SMTP verbs was set and for new parameters in MAIL
and RCPT
.
Some relatively common keywords (not all of them corresponding to commands) used today are:
8BITMIME
– 8 bit data transmission,RFC 6152ATRN
– AuthenticatedTURN
forRFC 2645AUTH
– Authenticated SMTP,RFC 4954CHUNKING
– Chunking,RFC 3030DSN
– Delivery status notification,RFC 3461 (See Variable envelope return path)ETRN
– Extended version of remote message queue starting commandTURN
,RFC 1985HELP
– Supply helpful information,RFC 821PIPELINING
– Command pipelining,RFC 2920SIZE
– Message size declaration,RFC 1870- RFC 3207(2002)
SMTPUTF8
– AllowRFC 6531UTF8SMTP
– Allow )
The ESMTP format was restated in
EHLO
command in servers became mandatory, and HELO
designated a required fallback.
Non-standard, unregistered, service extensions can be used by bilateral agreement, these services are indicated by an EHLO
message keyword starting with "X", and with any additional parameters or verbs similarly marked.
SMTP commands are case-insensitive. They are presented here in capitalized form for emphasis only. An SMTP server that requires a specific capitalization method is a violation of the standard.[citation needed]
8BITMIME
At least the following servers advertise the 8BITMIME extension:
- Apache James (since 2.3.0a1)[29]
- Citadel (since 7.30)
- Courier Mail Server
- Gmail[30]
- IceWarp
- IIS SMTP Service
- Kerio Connect
- Lotus Domino
- Microsoft Exchange Server (as of Exchange Server 2000)
- Novell GroupWise
- OpenSMTPD
- Oracle Communications Messaging Server
- Postfix
- Sendmail (since 6.57)
The following servers can be configured to advertise 8BITMIME, but do not perform conversion of 8-bit data to 7-bit when connecting to non-8BITMIME relays:
- Exim and qmail do not translate eight-bit messages to seven-bit when making an attempt to relay 8-bit data to non-8BITMIME peers, as is required by the RFC.[31] This does not cause problems in practice, since virtually all modern mail relays are 8-bit clean.[32]
- Microsoft Exchange Server 2003 advertises 8BITMIME by default, but relaying to a non-8BITMIME peer results in a bounce. This is allowed by RFC 6152 section 3.
SMTP-AUTH
The SMTP-AUTH extension provides an access control mechanism. It consists of an
SMTP-AUTH can be used to allow legitimate users to relay mail while denying relay service to unauthorized users, such as
The SMTP-AUTH extension also allows one mail server to indicate to another that the sender has been authenticated when relaying mail. In general this requires the recipient server to trust the sending server, meaning that this aspect of SMTP-AUTH is rarely used on the Internet.[citation needed]
SMTPUTF8
Supporting servers include:
- Postfix (version 3.0 and later)[33]
- Momentum (versions 4.1[34] and 3.6.5, and later)
- Sendmail (experimental support in 8.17.1)
- Exim (experimental as of the 4.86 release, quite mature in 4.96)
- CommuniGate Pro as of version 6.2.2[35]
- Courier-MTA as of version 1.0[36]
- Halon as of version 4.0[37]
- Microsoft Exchange Server as of protocol revision 14.0[38]
- Haraka and other servers.[39]
- Oracle Communications Messaging Server as of release 8.0.2.[40]
Security extensions
Mail delivery can occur both over plain text and encrypted connections, however the communicating parties might not know in advance of other party's ability to use secure channel.
STARTTLS or "Opportunistic TLS"
The STARTTLS extensions enables supporting SMTP servers to notify connecting clients that it supports TLS encrypted communication and offers the opportunity for clients to upgrade their connection by sending the STARTTLS command. Servers supporting the extension do not inherently gain any security benefits from its implementation on its own, as upgrading to a TLS encrypted session is dependent on the connecting client deciding to exercise this option, hence the term opportunistic TLS.
STARTTLS is effective only against passive observation attacks, since the STARTTLS negotiation happens in plain text and an active attacker can trivially remove STARTTLS commands. This type of
In 2014 the Electronic Frontier Foundation began "STARTTLS Everywhere" project that, similarly to "HTTPS Everywhere" list, allowed relying parties to discover others supporting secure communication without prior communication. The project stopped accepting submissions on 29 April 2021, and EFF recommended switching to DANE and MTA-STS for discovering information on peers' TLS support.[42]
SMTP MTA Strict Transport Security
A newer 2018
In April 2019 Google Mail announced support for MTA-STS.[43]
SMTP TLS Reporting
Protocols designed to securely deliver messages can fail due to misconfigurations or deliberate active interference, leading to undelivered messages or delivery over unencrypted or unauthenticated channels.
In April 2019 Google Mail announced support for SMTP TLS Reporting.[43]
Spoofing and spamming
The original design of SMTP had no facility to authenticate senders, or check that servers were authorized to send on their behalf, with the result that email spoofing is possible, and commonly used in email spam and phishing.
Occasional proposals are made to modify SMTP extensively or replace it completely. One example of this is Internet Mail 2000, but neither it, nor any other has made much headway in the face of the network effect of the huge installed base of classic SMTP.
Instead, mail servers now use a range of techniques, such as stricter enforcement of standards such as
Implementations
Related requests for comments
- RFC 1123– Requirements for Internet Hosts—Application and Support (STD 3)
- RFC 1653)
- RFC 2505– Anti-Spam Recommendations for SMTP MTAs (BCP 30)
- RFC 2821– Simple Mail Transfer Protocol
- RFC 2920– SMTP Service Extension for Command Pipelining (STD 60)
- RFC 3030– SMTP Service Extensions for Transmission of Large and Binary MIME Messages
- RFC 2487)
- RFC 1891)
- RFC 5248)
- RFC 1894)
- RFC 3461)
- RFC 3834– Recommendations for Automatic Responses to Electronic Mail
- RFC 3974– SMTP Operational Experience in Mixed IPv4/v6 Environments
- RFC 5336)
- RFC 5248)
- RFC 5068– Email Submission Operations: Access and Accountability Requirements (BCP 134)
- RFC 3463)
- RFC 1123)
- RFC 2822)
- RFC 5504– Downgrading Mechanism for Email Address Internationalization
- RFC 2476)
- RFC 1892)
- RFC 5336)
- RFC 8314– Cleartext Considered Obsolete: Use of Transport Layer Security (TLS) for Email Submission and Access
See also
- Bounce address
- RFC 2195
- DKIM
- Ident
- List of mail server software
- List of SMTP server return codes
- POP before SMTP / SMTP after POP
- RFC 3516
- Sender Policy Framework (SPF)
- RFC 4422
- SMTP Authentication
- Variable envelope return path
- Comparison of email clients for information about SMTP support
Notes
- ^ The History of Electronic Mail Archived December 2, 2017, at the Wayback Machine, Tom Van Vleck: "It is not clear this protocol was ever implemented"
- ^ The First Network Email, Ray Tomlinson, BBN
- ^ Picture of "The First Email Computer" by Dan Murphy, a PDP-10
- ^ Dan Murphy's TENEX and TOPS-20 Papers Archived November 18, 2007, at the Wayback Machine
- RFC 524– A Proposed Mail Protocol
- ^ Crocker, David H. (December 1977). "Framework and Functions of the "MS" Personal Message System" (PDF). The RAND Corporation. Archived (PDF) from the original on May 13, 2022. Retrieved April 17, 2022.
- RFC 469– Network Mail Meeting Summary
- ^ RFC 733, 21 November 1977, Standard for the Format of ARPA Network Text Message
- ^ "Tldp.org". Archived from the original on August 17, 2007. Retrieved August 25, 2007.
- ^ "draft-barber-uucp-project-conclusion-05 – The Conclusion of the UUCP Mapping Project". Archived from the original on October 13, 2007. Retrieved August 25, 2007.
- RFC 1123.
- ^ Eric Allman (1983), Sendmail – An Internetwork Mail Router (PDF), BSD UNIX documentation set, Berkeley: University of California, archived (PDF) from the original on May 20, 2013, retrieved June 29, 2012
- S2CID 206442868, archived from the original(PDF) on May 12, 2011
- ^ Paul Hoffman (February 1, 1998). "Allowing Relaying in SMTP: A Survey". Internet Mail Consortium. Archived from the original on March 5, 2016. Retrieved May 30, 2010.
- ^ Paul Hoffman (August 2002). "Allowing Relaying in SMTP: A Series of Surveys". Internet Mail Consortium. Archived from the original on January 18, 2007. Retrieved May 30, 2010.
- ^ "In Unix, what is an open mail relay? - Knowledge Base". June 17, 2007. Archived from the original on June 17, 2007. Retrieved March 15, 2021.
- ^ "The MAIL, RCPT, and DATA verbs" Archived February 22, 2014, at the Wayback Machine, [D. J. Bernstein]
- RFC 5321Section-7.2
- ^ Systems, Message. "Message Systems Introduces Latest Version Of Momentum With New API-Driven Capabilities". www.prnewswire.com. Archived from the original on July 19, 2020. Retrieved July 19, 2020.
- ^ Cara Garretson (2005). "ISPs Pitch In to Stop Spam". PC World. Archived from the original on August 28, 2015. Retrieved January 18, 2016.
Last month, the Anti-Spam Technical Alliance, formed last year by Yahoo, America Online, EarthLink, and Microsoft, issued a list of antispam recommendations that includes filtering Port 25.
- RFC 5321, Simple Mail Transfer Protocol, J. Klensin, The Internet Society (October 2008)
- RFC 1047
- ^ "rfc5321#section-4.5.3.2.6". Archived from the original on January 16, 2015. Retrieved June 7, 2010.
- .
- ^ a b "MAIL Parameters". IANA. February 14, 2020. Archived from the original on May 28, 2019. Retrieved May 28, 2019.
- STD71
- ^ Jiankang Yao (December 19, 2014). "Chinese email address". EAI (Mailing list). IETF. Archived from the original on October 2, 2015. Retrieved May 24, 2016.
- ^ "SMTP Service Extension Parameters". IANA. Archived from the original on May 28, 2019. Retrieved November 5, 2013.
- ^ James Server - ChangeLog Archived February 20, 2020, at the Wayback Machine. James.apache.org. Retrieved on 2013-07-17.
- ^ 8BITMIME service advertised in response to EHLO on gmail-smtp-in.l.google.com port 25, checked 23 November 2011
- ^ Qmail bugs and wishlist. Home.pages.de. Retrieved on 2013-07-17.
- ^ The 8BITMIME extension Archived June 7, 2011, at the Wayback Machine. Cr.yp.to. Retrieved on 2013-07-17.
- ^ "Postfix SMTPUTF8 support is enabled by default" Archived August 7, 2020, at the Wayback Machine, February 8, 2015, postfix.org
- ^ "Message Systems Introduces Latest Version Of Momentum With New API-Driven Capabilities" (Press release). Archived from the original on September 15, 2020. Retrieved September 17, 2020.
- ^ "Version 6.2 Revision History". CommuniGate.com. Archived from the original on October 29, 2020. Retrieved September 17, 2020.
- ^ Sam Varshavchik (September 18, 2018). "New releases of Courier packages". courier-announce (Mailing list). Archived from the original on August 17, 2021. Retrieved September 17, 2020.
- ^ "Halon MTA changelog". GitHub. November 9, 2021. Archived from the original on September 18, 2020. Retrieved September 17, 2020.
v4.0: New SMTPUTF8 support
Updated for new versions - ^ "MS-OXSMTP: Simple Mail Transfer Protocol (SMTP) Extensions". July 24, 2018. Archived from the original on August 16, 2021. Retrieved September 17, 2020.
- ^ "EAI Readiness in TLDs" (PDF). February 12, 2019. Archived (PDF) from the original on January 24, 2021. Retrieved September 17, 2020.
- ^ "Communications Messaging Server Release Notes". oracle.com. October 2017. Archived from the original on November 24, 2020. Retrieved September 17, 2020.
- ^ a b "Introducing MTA Strict Transport Security (MTA-STS) | Hardenize Blog". www.hardenize.com. Archived from the original on April 25, 2019. Retrieved April 25, 2019.
- ^ "STARTTLS Everywhere". EFF. Archived from the original on August 9, 2019. Retrieved December 4, 2021.
- ^ a b Cimpanu, Catalin. "Gmail becomes first major email provider to support MTA-STS and TLS Reporting". ZDNet. Archived from the original on April 29, 2019. Retrieved April 25, 2019.
- ^ "Message Non Compliant with RFC 5322". Archived from the original on January 17, 2023. Retrieved January 20, 2021.
- ^ "Message could not be delivered. Please ensure the message is RFC 5322 compliant". Archived from the original on January 28, 2021. Retrieved January 20, 2021.
- ^ "Why are the emails sent to Microsoft Account rejected for policy reasons?". Archived from the original on February 14, 2021. Retrieved January 20, 2021.
References
- Hughes, L (1998). Internet E-mail: Protocols, Standards and Implementation. Artech House Publishers. ISBN 978-0-89006-939-4.
- Hunt, C (2003). sendmail Cookbook. O'Reilly Media. ISBN 978-0-596-00471-2.
- Johnson, K (2000). Internet Email Protocols: A Developer's Guide. Addison-Wesley Professional. ISBN 978-0-201-43288-6.
- Loshin, P (1999). Essential Email Standards: RFCs and Protocols Made Practical. John Wiley & Sons. ISBN 978-0-471-34597-8.
- Rhoton, J (1999). Programmer's Guide to Internet Mail: SMTP, POP, IMAP, and LDAP. Elsevier. ISBN 978-1-55558-212-8.
- Wood, D (1999). Programming Internet Mail. O'Reilly. ISBN 978-1-56592-479-6.