SMTP - Simple Mail Transfer Protocol


Comandos


Semântica dos Comandos


Sintaxe dos argumentos (notação BNF)

	<reverse-path> ::= <path> 
	<forward-path> ::= <path> 
	<path> ::= "<" [ <a-d-l> ":" ] <mailbox> ">" 
	<at-domain> ::= "@" <domain> 
	<domain> ::= <element> | <element> "." <domain> 
	<element> ::= <name> | "#" <number> | "[" <dotnum> "]" 
	<mailbox> ::= <local-part> "@" <domain> 
	<local-part> ::= <dot-string> | <quoted-string> 
	<name> ::= <a> <ldh-str> <let-dig> 
	<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> 
	<let-dig> ::= <a> | <d> 
	<let-dig-hyp> ::= <a> | <d> | "-" 
	<dot-string> ::= <string> | <string> "." <dot-string> 
	<string> ::= <char> | <char> <string> 
	<quoted-string> ::= """ <qtext> """ 
	<qtext> ::= "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext> 
	<char> ::= <c> | "\" <x> 
	<dotnum> ::= <snum> "." <snum> "." <snum> "." <snum> 
	<number> ::= <d> | <d> <number> 
	<CRLF> ::= <CR> <LF> 
	<CR> ::= o caracter Carriage Return (código ASCII 13) 
	<LF> ::= o caracter Line Feed (código ASCII 10) 
	<SP> ::= caracter de espaço (código ASCII 32) 
	<snum> ::= um, dois ou três dígitos representando um valor 
	           decimal inteiro entre 0 e 255 
	<a> ::= qualquer um dos caracteres alfabéticos, maiúsculo ou 
	        minúsculo 
	<c> ::= qualquer um dos 128 caracteres ASCII exceto <special>
	        ou <SP> 
	<d> ::= qualquer dígito de 0 a 9 
	<q> ::= qualquer um dos 128 carcteres ASCII exceto <CR>,
	        <LF>, aspas (") ou barra invertida (\) 
	<x> ::= qualquer um dos 128 carcteres ASCII (sem exceções) 
	<special> ::= "<" | ">" | "(" | ")" | "[" | "]" | "\" | "." | 
	              "," | ";" | ":" | "@"  """ | caracteres de controle 
	              (códigos ASCII entre 0 e 31, inclusive, e 127) 

Descrição dos Comandos

HELO (HELLO) (Obrigatório)

Identifica o Emissor da mensagem para o Receptor.

MAIL(Obrigatório)

Este comando inicializa uma transação de mail na qual uma mensagem é enviada a uma ou mais caixa de mensagems (mailbox).

RCPT (ReCiPienT)(Obrigatório)

Este comando identifica o destinatário da mensagem; múltiplos destinatários são definidos por múltiplos usos desse comando.

DATA(Obrigatório)

Inicializa a transmissão da mensagem, após seu uso é transmitido o conteúdo da mensagem, que pode conter qualquer um dos 128 caracteres ASCII. O seu término é especificado por uma sequência "<CRLF>.<CRLF>".

RSET (ReSET)(Obrigatório)

Este comando determina que a operação atual de mail deverá ser abortada. Todos os dados referentes são descartados.

SEND

Este comando é usado para inicializar uma transação de mail na qual uma mensagem é enviada para um ou mais terminais onde estejam os destinatários e não para os seus mailboxes. É um comando alternativo ao comando MAIL

SOML (Send Or MaiL)

Este comando é usado para inicializar uma transação de mail na qual uma mensagem é enviada para um ou mais terminais onde estejam os destinatários ou a seus mailboxes. A mensagem é derecionada aos terminais dos destinatários ativos no momento (e aceitando mensagens) caso contrário é direcionada aos seus mailboxes. É alternativo ao comando MAIL.

SAML (Send And MaiL)

Este comando é usado para inicializar uma transação de mail na qual uma mensagem é enviada para um ou mais terminais dos destinatários e aos seus mailboxes. A mensagem é derecionada aos terminais dos destinatários ativos no momento (e aceitando mensagens) e a todos os mailboxes.

VRFY (VeRiFY)

Este comando solicita ao Receptor-SMTP a confirmação de que o argumento identifica um usuário conhecido. Se for identificado é retornado o nome completo do usuário (se este possuir) e seu mailbox completo.

EXPN (EXPaNd)

Este comando solicita ao Receptor-SMTP a confirmação de que o argumento identifica uma lista de usuários de mail (mailing list). Se for identificada serão retornados os membros desta lista no mesmo formato retornado pelo comando VRFY.

HELP

Este comando faz com que o Receptor-SMTP envie informação de ajuda ao Emissor-SMTP.

NOOP(Obrigatório)

Este comando não possui efeitos nem parâmetros. Apenas faz com que o receptor envie um OK.

QUIT(Obrigatório)

Este comando determina que o Receptor-SMTP envie um OK e então feche o canal de comunicação com o Emissor-SMTP.

TURN

Este comando faz com que o Receptor e o Emissor troquem de papéis, o Receptor fica como Emissor e o Emissor como Receptor.