
Bem, o título pode ser um pouco enganador, mas não consegui encontrar uma maneira melhor de descrever minha pergunta. Tentei configurar minha máquina para enviar e-mail através da mail()
função php. Acontece que não posso. Meu ISP está bloqueando a porta 25, então não tive sorte. Então, por curiosidade, configurei o Thunderbird com uma conta do Gmail e enviei uma mensagem para uma conta do Hotmail. Isso funcionou. Fiquei curioso para saber como o Thunderbird consegue enviar os e-mails.
Vi na configuração da conta do Gmail no Thunderbird que ela está usando uma porta diferente, não a 25. O Thunderbird parece definir esses valores automaticamente, o que é muito bom. Há algum tempo eu queria configurar uma conta no Thunderbird e tive que inserir manualmente os valores do servidor SMTP e os valores IMAP/POP3, então é bom ver que eles fazem isso automaticamente agora.
Também verifiquei os registros de e-mail e nada mudou. Eu acho que isso é óbvio, já que o e-mail não está sendo enviado pelo sendmail do postfix, mas pelo gmail. Isso está certo?
Bem, minha pergunta é como o Thunderbird consegue enviar email? e mais importante, posso fazer algo semelhante para enviar e-mails a partir de meus scripts php?
Sei que esta pode ser uma pergunta "estúpida", mas realmente não sei nada sobre esse assunto.
E já que estou perguntando, onde posso aprender sobre isso? Eles ensinam isso na escola? Talvez para cientistas da computação? Qual é um bom livro para começar neste belo mundo de e-mail, SMTP, POP3 e outras coisas.
Responder1
Para enviar um e-mail, seu cliente de e-mail (Thunderbird ou script PHP) deve se conectar a um servidor SMTP que possa retransmitir o e-mail pela Internet para finalmente chegar ao servidor de e-mail do destinatário. A porta padrão para SMTP é 25, mas outras portas, como 587 ou 465, às vezes podem ser usadas, geralmente com algum tipo de criptografia, como SSL.
A porta e a criptografia a serem usadas dependem do servidor SMTP que você está usando. O Thunderbird, como você mencionou, pode detectar isso testando portas e protocolos comuns. Para enviar e-mail via SSL a partir de um script PHP você pode, por exemplo, usar oCorreio PERAextensão.
As informações sobre como funcionam os protocolos de e-mail provavelmente não devem ser consideradas de conhecimento comum.Wikipédiaé claro que tem uma visão geral, mas como você disse, um livro provavelmente é recomendado se você quiser se aprofundar.
Responder2
Eu sei que você resolveu isso, mas esta é uma resposta à pergunta original: como o Thunderbird envia e-mails?
O cliente Thunderbird vem com informações de conexão de alguns provedores de e-mail conhecidos, incluindo (como você viu) Gmail, Hotmail, Yahoo e provavelmente alguns outros. A configuração saberia:
- Protocolo para entrada - POP3 ou IMAP (infelizmente, o Thunderbird não pode fazer o Exchange: a Microsoft licencia apenas o protocolo Exchange para dispositivos móveis)
- Protocolo para saída - praticamente universalmente SMTP
- Portas onde estão os serviços.
- Preciso me autenticar no servidor SMTP? (Os servidores SMTP geralmente precisam de autenticação agora, caso contrário você fornecerá mais spam)
- Criptografia? TLS/SSL? ou suporta STARTTLS?
Então, quando você criou sua conta, você disse ao Thunderbird "[e-mail protegido]". Ele viu que era gmail.com e usou o que a configuração sabia sobre a conta (IMAP/SSL em imap.gmail.com, SMTP/SSL em smtp.gmail.com, etc.)
Quando você envia um e-mail, o Thunderbird sabe que precisa fazer login no servidor SMTP, ativar a criptografia e depois enviar a mensagem com umformato muito específico.
Quanto ao aprendizado, verifique oRFCS, eles são a última palavra no que viaja pelos fios. Além disso, verifique os documentos para postfix, sendmail e outros MTAs (Mail Transfer Agents).