Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

share|improve this question

4 Answers 4

up vote 12 down vote accepted

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.

share|improve this answer
    
@diago so when i sign into gmail, and send an email to myself, the email itself is sent using SMTP, and not HTTP? –  hatorade Aug 19 '09 at 16:09
    
@hatorade - Correct. –  Diago Aug 19 '09 at 16:10
1  
@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). –  jtimberman Aug 19 '09 at 16:32

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);
share|improve this answer
    
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). –  user2284570 Apr 29 at 13:11

You use http(s) to access to the webmail, but the service behind the webmail page is using the standard mail protocols (described by Diago).

share|improve this answer
    
@gnoupi ah, so I use HTTP(s) to go from my computer -> gmail webmail computer, and then gmail webmail computer uses SMTP to go from gmal webmail computer -> SMTP gmail server? –  hatorade Aug 19 '09 at 16:19

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|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.