The Simple Mail Transfer Protocol (SMTP), in an analogy to postal mail, is the Internet application protocol that moves addressed and stamped envelopes between post offices.[1] Other protocols, such as POP3 and IMAP, manage putting envelopes into mailboxes and taking them out. Yet another set of functions multipurpose internet mail extensions (MIME (computer), identifies the type of content inside the electronic envelope, such as text, audio, video, programs, web pages, encrypted text, etc.
Do understand the difference between the protocol and the program that runs the protocol. In a UNIX/LINUX protocol, there are a variety of protocols that run SMTP, such as open-source sendmail
[2] or canned_reply
[3] or ftpmail
[4]. In the Microsoft world, the main program that runs SMTP is Microsoft Exchange.
SMTP requires a guaranteed path to move the bytes of the envelope across the internet, a service provided by the Transmission Control Protocol (TCP). SMTP itself, however, does not guarantee delivery of electronic messages, but does have conventions to tell the server when it could not deliver an envelope, find the associated post office, and other abnormal events.[5]
Multipurpose Internet Mail Extensions tell the sending and receiving client application programs how to handle the "letter" that goes into the "envelope". First, the basic machine-readable format of an Internet message body needs to be defined. [6] Next, the client needs to be able to identify the "language" that a computer must understand the content: the media type.[7] Especially when the content is text, but in other than ASCII text (e.g., human scripts not using the Roman alphabet such as Arabic orthography, kanji and hiragana, Sanskrit orthography, etc. [8]
There need to be administrative conventions to identify new kinds of media, non-ASCII formats, and other information needed to process messages. [9]
See port scanning. In general, SMTP servers should not be present on end user computers.