Esse problema ocorreu comigo há algumas semanas. Um e-mail precisava ser enviado com anexo e não se sabia qual o tamanho máximo de anexo que podia passar pelos dois servidores (o do remetente e o do destinatário). Na ocasião eu tive que descobrir por tentativa e erro metade da resposta e pesquisa no Google para o resto.
Ontem eu descobri que poderia ter feito a pergunta diretamente aos servidores (às máquinas, não aos administradores).
Quando o servidor facilita
Por exemplo, para saber o tamanho máximo de e-mail que o meu servidor aceita abra um prompt do DOS e digite:
telnet ryan.com.br 25 [ENTER]
O meu servidor responderá com algo assim:
220-gator194.hostgator.com ESMTP Exim 4.69 #1 Tue, 24 Feb 2009 01:38:39 -0600
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
E um cursor piscando. O servidor está esperando. Digite às cegas (sua digitação não vai aparecer):
EHLO [ENTER]
O servidor responde com:
250-gator194.hostgator.com Hello [189.70.54.187]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250 HELP
A linha SIZE diz o tamanho máximo que cada mensagem pode ter, independente do tamanho da caixa postal. No exemplo, uns 52MB. Tenha em mente que o valor reportado é o valor total já com o overhead de 33% de que falo no meu post anterior. Para saber o tamanho máximo aproximado do total de anexos de uma mensagem, multiplique esse valor por 0,75. No caso, vai dar 39MB. Como a regra dos 33% não é perfeita mandar algo maior que 30MB pode ser uma loteria.
Entendendo como funciona
"telnet ryan.com.br 25" significa algo como "estabeleça uma conexão RAW (bruta) com ryan.com.br usando a porta 25". A porta 25, como vocês devem saber, é a porta padrão para entrada de e-mail do protocolo SMTP. Sistemas mais modernos, e o exemplo mais conhecido deve ser o Gmail, usam também a porta 587 e outros usam a porta 465.
Os protocolos de e-mail (SMTP, POP) foram desenhados para serem usados por humanos, como se fosse uma "conversa" (em ASCII) com o servidor.
Para poder conversar com o servidor você precisa de um programa que estabeleça uma conexão TCP "bruta" (conecta e se limita a passar para o outro lado tudo o que você digitar e exibir as respostas) e telnet.exe é justamente esse tipo de programa.
Já "EHLO" é uma extensão do comando "HELO" (parece piada, mas é sério) que faz o servidor responder com uma lista de suas características. Uma delas é o tamanho máximo que cada mensagem pode ter.
Quando o servidor não facilita
O meu servidor associa diretamente qualquer tentativa de conexão à porta 25 com o serviço de e-mail, mas nem sempre a coisa é fácil assim. Muitas vezes você precisa saber exatamente qual o FQDN (host.dominio) do encarregado de manipular e-mail. No meu caso, é "mail.ryan.com.br", mas como você viu no exemplo, não foi necessário.
Se você tentar "telnet bol.com.br 25" vai dar um erro parecido com este:
421 Cannot connect to SMTP server 200.221.8.150 (200.221.8.150:25), connect error 10060
Você precisa saber qual o FQDN do servidor de e-mail do BOL, que geralmente é divulgado para seus usuários, mas se você não for usuário, ou tiver esquecido, pode chutar um dos nomes padrão:
mail.nome_do_domínio
smtp.nome_do_domínio
smtps.nome_do_domínio
mx.nome_do_domínio
smtp.nome_do_domínio
smtps.nome_do_domínio
mx.nome_do_domínio
Ou seguir o procedimento explicado aqui.
Se ao dar o comando:
EHLO [ENTER]
O servidor reclamar algo do tipo:
501 Syntax: EHLO hostname
Então faça do jeito que ele quer:
EHLO teste.com [ENTER]
O problema é que a sintaxe padrão dos comandos HELO e EHLO requer que você se "apresente", mas como você sempre pôde se apresentar como quisesse (isso não é verificado de maneira alguma), muitos servidores dispensam essa identificação. No lugar de "teste.com" você pode escrever BRADPIT que vai funcionar do mesmo jeito.
Só complementando, alguns servidores podem conferir o que é enviado nos comandos HELO/EHLO com o endereço associado ao IP (reverse DNS) e caso não sejam iguais, recusar o e-mail (há grandes chances de ser spam). Mas como o objetivo não é enviar um e-mail mas apenas ver as características do servidor, nesse caso não faz diferença o que é enviado como hostname.
ResponderExcluirE quando o servidor usa o Trend Micro?
ResponderExcluirEu não consigo me comunicar pq ele lista meu IP na lista de RBL, sendo que não está. Dei uma lida na internet, e o meu ip é um dos muitos exemplos de falsos de falsos positivos, até conferi em outro provedor desse serviço e está tudo limpo por lá.
Voltando, como que me comunico com o servidor nesse caso?