Email clients vs Webmail - which use which protocols?

16,141

Solution 1

All e-mail is sent using SMTP. This is covered in the following RFC 821.

POP3 is a retrieval protocol only and covered in RFC 1939.
IMAP is the same and covered in RFC 3501

All web-based mail providers simply provides an interface to the mailboxes but still apply and use the above protocols which are standards, specificed and defined by the RFC documents. Your e-mail is saved on the provider servers and using the example below then sent from one of their servers.

To expand on this. The best way to understand how to send an e-mail is to do it the way it is done mentioned in the RFC. Here is a step-by-step guide on how to send an e-mail using Telnet with SMTP.

Solution 2

GMail does not use http to send or receive emails. It's simply a front end and uses the traditional POP3/IMAP retrieval (not sure which it actually uses) and SMTP sending protocols behind the scenes. Users can also use these protocols to access their accounts with stand alone clients like thunderbird.


As for your update I pulled the following from an email I sent using GMail the other day :

Received: by 10.204.67.131 with HTTP; Thu, 6 Aug 2009 08:01:22 -0700 (PDT)

I think it's just GMail's way of tracking if the email was sent via the web interface for gmail or directly through its SMTP servers.


Yup just tested it, here's the string from an email I sent using Thunderbird.

Received: from ?<LAN_IP>? (<hostname> [<WAN_IP>])by mx.google.com with ESMTPS id <ESMTPS_ID>(version=TLSv1/SSLv3 cipher=RC4-MD5);

Solution 3

There are multiple parts to "sending" an email. Client (e.g. Thunderbird, Web browser) to mail server. Then from the mail server to the destination mail server. The final step (destination mail server to recipient's client) is normally considered retrieving email rather than part of the sending process.

The first step (your client to the mail server) is where SMTP is normally used. In the case of a web client, you can consider the action as Browser -> Proxy Client -> Mail Server, where the "Proxy Client" is the web server.

The second step (your server, to destination server) typically uses SMTP in the case of internet email.

The final step (mail retrieval) is where POP3 and IMAP are possible protocols.

But, that's just the "standard" set of possibilities.

Microsoft's Mail Server software (Exchange) has an extended protocol (MAPI) which it uses to communicate with Exchange-aware clients (mostly Outlook). It can use SMTP and MAPI clients, but I think you have to turn on the "standard interfaces". Lotus Notes is another popular mail server (well, not just a mail server) which supports a different client-server protocol, and for which the standard interface is not part of the standard install.

There are email client programs that interact with popular mail servers (principally Exchange, hotmail and gmail) using the HTTP interface to overcome difficulties or perceived limitations using the standard or enhanced APIs those Mail Servers provide, if any (at one time at least hotmail only had a web/HTTP interface).

The source and destination Mail Servers may use some different protocol to transmit the email between them. Most modern mail servers will support SMTP, but if there are other possibilities, especially if the source and destination server is the same. *nix systems provide "sendmail" for sending email on the same host, which can also use SMTP to transmit email to other hosts.

SMTP is a standard way to send email to a destination server. POP3 and IMAP are standard ways to retrieve email. Good for interaction with other standard supporting clients and servers, but by no means the only way it is done.

In particular, what gmail does when you send an email to yourself, or even to someone else with a gmail/Google hosted email account, is totally up to Google. They could use SMTP, they could use sendmail, Lotus Notes (okay they don't, but they could), or they could do something totally custom.

Share:
16,141

Related videos on Youtube

Greatran
Author by

Greatran

Updated on September 17, 2022

Comments

  • Greatran
    Greatran almost 2 years

    Here is my understanding:

    Webmail (gmail, etc) uses http for sending/retrieving emails.

    Email clients (thunderbird, etc) use SMTP for sending emails, and POP3/IMAP to retrieve emails. (Or, do they use http to send emails too, and only SMTP servers actually use SMTP..?)

    Is this correct?

    Edit: I guess my question is a little more subtle. I understand that SMTP server (gmail) to SMTP server (yahoo) is SMTP, and thus email is SMTP. But when gmail or thunderbird connect to their respective SMTP servers, is the connection between SMTP server and the webmail/email client using SMTP to send the mail? the reason i ask is if you look at emails in gmail it says the first it got received was with HTTP, and then it can be bounced around gmail servers using SMTP

  • Greatran
    Greatran almost 15 years
    @diago so when i sign into gmail, and send an email to myself, the email itself is sent using SMTP, and not HTTP?
  • BinaryMisfit
    BinaryMisfit almost 15 years
    @hatorade - Correct.
  • jtimberman
    jtimberman almost 15 years
    @hatorade The only HTTP involved there is when you "send", which simply submits a form (HTTP) to the web server, which then hands off to the mail server (SMTP).
  • user2284570
    user2284570 about 10 years
    This is because you use a third party client. You aren't using the real webmail. How I could send e-mails behind the strong firewall off my public Wi-Fi access which only leave port 80 open (yes no https or ftp).
  • N.S.
    N.S. about 6 years
    @jtimberman: So I'm still confused. Are you saying that the web browser does or does not involve itself in SMTP?