Comando sendmail do Linux
Em sistemas operacionais do tipo Unix, o sendmail é um recurso de roteamento de email de uso geral que suporta muitos tipos de métodos de transferência e entrega de email, incluindo o SMTP (Simple Mail Transfer Protocol) usado para o transporte de email pela Internet .
Descrição
O sendmail envia uma mensagem para um ou mais destinatários, roteando a mensagem por quaisquer redes necessárias. O sendmail faz o encaminhamento de redes conforme necessário para entregar a mensagem no local correto.
O sendmail não pretende ser uma rotina de interface do usuário; outros programas oferecem front-ends fáceis de usar. O sendmail é usado apenas para entregar mensagens pré-formatadas.
Sem nenhum sinalizador especificado, o sendmail lê sua entrada padrão até o final do arquivo ou uma linha que consiste apenas de um único ponto e envia uma cópia da mensagem encontrada lá para todos os endereços listados. Ele determina as redes a serem usadas com base na sintaxe e no conteúdo dos endereços.
Os endereços locais são pesquisados em um arquivo e com o alias apropriado. O aliasing pode ser evitado precedendo o endereço com uma barra invertida. A partir da versão 8.10, o remetente é incluído em qualquer expansão de alias; por exemplo, se “john” enviar email para “group” e “group” incluir “john” na expansão, a carta também será entregue para “john”.
Sintaxe
sendmail [ sinalizadores ] [ endereço ...]
Sintaxe alternativa
O sendmail também pode ser chamado, com funcionalidade especial, usando os seguintes comandos.
newaliases
mailq [-v]
hoststat
purgestat
smtpd
Veja abaixo para mais informações.
Parâmetros
-Ac | Use submit.cf mesmo que o modo de operação não indique um envio de email inicial. |
-Sou | Use sendmail.cf mesmo que o modo de operação indique um envio de email inicial. |
-B type | Defina o tipo de corpo para digitar . Os valores legais atuais são 7BIT ou 8BITMIME . |
-BA | Entre no modo ARPANET . Todas as linhas de entrada devem terminar com um CR – LF e todas as mensagens serão geradas com um CR-LF no final. Além disso, os campos “De:” e “Remetente:” são examinados para o nome do remetente. |
-bd | Execute como um daemon . O sendmail será bifurcado e executado em segundo plano, ouvindo no soquete 25 as conexões SMTP recebidas. Isso normalmente é executado em / etc / rc . |
-bD | O mesmo que -bd , exceto que ele é executado em primeiro plano. |
-bh | Imprima o banco de dados de status do host persistente . |
-bH | Limpe as entradas expiradas do banco de dados de status do host persistente. |
-bi | Inicialize o banco de dados de alias. |
-bm | Entregar correio da maneira usual (esse é o padrão). |
-bp | Imprima uma lista das filas . |
-bP | Imprima o número de entradas na (s) fila (s); disponível apenas com suporte a memória compartilhada. |
-bs | Use o protocolo SMTP conforme descrito no RFC 821 na entrada e saída padrão. Esse sinalizador implica todas as operações do sinalizador -ba que são compatíveis com o SMTP. |
-bt | Execute no modo de teste de endereço. Este modo lê endereços e mostra as etapas na análise; é usado para depurar tabelas de configuração. |
-bv | Verifique apenas nomes; não tente coletar ou entregar uma mensagem. O modo de verificação é normalmente usado para validar usuários ou listas de discussão. |
Arquivo -C | Use arquivo de configuração alternativa. O sendmail renuncia a qualquer privilégio aprimorado ( ID do usuário definido ou ID do grupo definido) se um arquivo de configuração alternativo for especificado. |
-D logfile | Envie a saída de depuração para o arquivo de log indicado em vez de stdout. |
-d categoria . nível … | Defina o sinalizador de depuração da categoria para o nível . A categoria é um número inteiro ou um nome que especifica o tópico e nivela um número inteiro que especifica o nível de saída de depuração desejado. Níveis mais altos geralmente significam mais produção. Mais de um sinalizador pode ser especificado, separando-os com vírgulas. Uma lista de categorias de depuração numérica pode ser encontrada no arquivo TRACEFLAGS na distribuição de origem do sendmail . A opção -d0.1 imprime a versão do sendmail e as opções usadas durante a compilação. A maioria das outras categorias só é útil e documentada no sendmailcódigo fonte do |
-F nome completo | Defina o nome completo do remetente. |
-f nome | Define o nome da pessoa “de” (ou seja, o remetente do envelope do correio). Esse endereço também pode ser usado no cabeçalho “De:” se esse cabeçalho estiver ausente durante o envio inicial. O endereço do remetente do envelope é usado como destinatário das notificações de status de entrega e também pode aparecer no cabeçalho “Return-Path:”. -f deve ser usado apenas por usuários “confiáveis” (normalmente root , daemon e rede ) ou se a pessoa que você está tentando se tornar for a mesma que você. Caso contrário, um cabeçalho “X-Authentication-Warning” será adicionado à mensagem. |
-G | Envio de retransmissão (gateway) de uma mensagem, por exemplo, quando o rmail chama sendmail . |
-h N | Definir a contagem de saltos para N . A contagem de saltos é incrementada toda vez que o email é processado. Quando atinge um limite, o email é retornado com uma mensagem de erro, provavelmente a vítima de um loop de alias. Se não especificado, as linhas “Recebidas:” na mensagem são contadas. |
-Eu | Ignore pontos sozinhos nas linhas sozinhos nas mensagens recebidas. Isso deve ser definido se você estiver lendo dados de um arquivo. |
-L tag | Defina o identificador usado nas mensagens syslog para a tag fornecida . |
-N dsn | Defina as condições de notificação de status de entrega como dsn , que pode ser ” nunca ” para nenhuma notificação ou uma lista separada por vírgula dos valores ” falha ” a ser notificada se a entrega falhar, ” atraso ” a ser notificado se a entrega atrasar e ” êxito “para ser notificado quando a mensagem for entregue com sucesso. |
-n | Não faça alias. |
-O opção = valor | Defina a opção option para o valor especificado . Este formulário usa nomes longos. Veja abaixo para mais detalhes. |
-o valor x | Defina a opção x para o valor especificado . Este formulário usa apenas nomes de caracteres únicos. |
protocolo -p | Defina o nome do protocolo usado para receber a mensagem. Pode ser um nome de protocolo simples como ” UUCP ” ou um protocolo e nome de host, como ” UUCP: ucbvax “. |
-q [ hora ] | Processe mensagens salvas na fila em intervalos determinados. Se o tempo for omitido, processe a fila uma vez. O tempo é dado como um número marcado, com ” s ” sendo segundos, ” m ” sendo minutos (padrão), ” h ” sendo horas, ” d ” sendo dias e ” w ” sendo semanas. Por exemplo, ” -q1h30m ” ou ” -q90m ” definiriam o tempo limite para uma hora e trinta minutos. Por padrão, o sendmail será executado em segundo plano. Esta opção pode ser usada com segurança com -bd . |
-qp [ hora ] | Semelhante ao tempo -q , exceto que, em vez de periodicamente bifurcar um filho para processar a fila, o sendmail bifurca um único filho persistente para cada fila que alterna entre processar a fila e dormir. O tempo de sono é dado como argumento ; o padrão é 1 segundo. O processo sempre dormirá pelo menos 5 segundos se a fila estava vazia na fila anterior executada. |
-q f | Processe as mensagens salvas na fila uma vez e não bifurque, mas execute em primeiro plano. |
nome -qG | Processe trabalhos no grupo de filas chamado somente nome . |
-q [ ! ] I substr | Limite os trabalhos processados aos que contêm substr como uma substring do ID da fila ou não ! é especificado. |
-q [ ! ] Q substr | Limite os trabalhos processados aos trabalhos em quarentena que contêm substr como substring do motivo da quarentena ou não quando ! é especificado. |
-q [ ! ] R substr | Limite os trabalhos processados aos que contêm substr como substring de um dos destinatários ou não ! é especificado. |
-q [ ! ] S substr | Limite os trabalhos processados aos que contêm substr como substring do remetente ou não quando ! é especificado. |
-Q [ motivo ] | Coloque em quarentena itens de fila normais com o motivo especificado ou itens de fila em quarentena em quarentena, se nenhum motivo for especificado. Isso deve ser usado apenas com algum tipo de correspondência de item, conforme descrito acima. |
-R retorno | Defina a quantidade da mensagem a ser devolvido se a mensagem salta . O parâmetro de retorno pode estar ” cheio ” para retornar a mensagem inteira ou ” hdrs ” para retornar apenas os cabeçalhos. Neste último caso, as devoluções locais retornam apenas os cabeçalhos. |
-r nome | Uma forma alternativa e obsoleta do sinalizador -f . |
-t | Leia a mensagem para os destinatários. Para: , Cc: e Bcc: linhas serão digitalizados para endereços de destinatários. A linha Cco: será excluída antes da transmissão. |
-V envid | Defina a identificação do envelope original. Isso é propagado pelo SMTP para servidores que oferecem suporte a DSNs e é retornado em mensagens de erro compatíveis com DSN. |
-v | Entre no modo detalhado . Expansões de alias serão anunciadas etc. |
-X logfile | Registre todo o tráfego de entrada e saída de malas diretas no arquivo de log indicado. Isso deve ser usado apenas como último recurso para depurar bugs de mala direta. Ele registrará muitos dados muito rapidamente. |
– | Pare de processar sinalizadores de comando e use o restante dos argumentos como endereços. |
Opções
Também há muitas opções de processamento que podem ser definidas. Normalmente, eles serão usados apenas por um administrador do sistema . As opções podem ser definidas na linha de comando usando o sinalizador -o (para nomes abreviados), o sinalizador -O (para nomes longos) ou no arquivo de configuração. Esta é uma lista parcial limitada às opções que provavelmente serão úteis na linha de comando e mostra apenas os nomes longos. As opções são:
AliasFile = arquivo | Use arquivo alternativo de alias. |
HoldExpensive | Em mala direta considerada “cara” para se conectar, não inicie a conexão imediata. Isso requer enfileiramento. |
CheckpointInterval = N | Verifique o arquivo da fila após cada N entregas bem-sucedidas (padrão 10 ). Isso evita entregas duplicadas excessivas ao enviar para longas listas de discussão interrompidas por falhas no sistema. |
DeliveryMode = x | Defina o modo de entrega como x . Os modos de entrega são ” i ” para entrega interativa (síncrona), ” b ” para entrega em segundo plano ( assíncrona ), ” q ” apenas para fila; ou seja, a entrega real é feita na próxima vez que a fila é executada e ” d ” é adiado: o mesmo que ” q “, exceto que as pesquisas no banco de dados para mapas que definiram a opção -D (padrão para o mapa do host) são evitadas. |
ErrorMode = x | Defina o processamento de erros no modo x . Os modos válidos são ” m ” para enviar de volta a mensagem de erro, ” w ” para “gravar” de volta a mensagem de erro (ou enviá-la de volta se o remetente não estiver conectado), ” p ” para imprimir os erros no terminal (padrão ), ” q ” para descartar mensagens de erro (somente o status de saída é retornado) e ” e ” para realizar um processamento especial no BerkNet. Se o texto da mensagem não for enviado de volta pelos modos ” m ” ou ” w ” e se o remetente for local para esta máquina, uma cópia da mensagem será anexada ao arquivo dead.letter no remetente ‘ |
SaveFromLine | Salve Unix-style De linhas na frente de mensagens. |
MaxHopCount = N | O número máximo de vezes que uma mensagem pode “saltar” antes de decidirmos que ela está em um loop. |
IgnoreDots | Não faça pontos sozinhos em uma linha como terminador de mensagens. |
SendMimeErrors | Envie mensagens de erro no formato MIME . Se não estiver definido, a extensão SMTP DSN (notificação de status de entrega) será desativada. |
ConnectionCacheTimeout = timeout | Defina o tempo limite do cache de conexão. |
ConnectionCacheSize = N | Defina o tamanho do cache de conexão. |
LogLevel = n | O nível do log. |
MeToo = False | Não envie para “eu” (remetente) se eu estiver em uma expansão de alias. |
CheckAliases | Valide o lado direito dos aliases durante um comando newaliases . |
OldStyleHeaders | Se definida, esta mensagem pode ter cabeçalhos de estilo antigo. Se não estiver definida, é garantido que esta mensagem tenha novos cabeçalhos de estilo (por exemplo, vírgulas em vez de espaços entre endereços). Se definido, um algoritmo adaptativo é usado para determinar corretamente o formato do cabeçalho na maioria dos casos. |
QueueDirectory = queuedir | Selecione o diretório no qual colocar as mensagens na fila. |
StatusFile = arquivo | Salve as estatísticas no arquivo nomeado . |
Timeout.queuereturn = time | Defina o tempo limite das mensagens não entregues na fila para o tempo especificado. Após a entrega falhar (por exemplo, devido a um host estar inativo) por esse período de tempo, as mensagens com falha serão retornadas ao remetente. O padrão é cinco dias. |
UserDatabaseSpec = userdatabase | Se definido, um banco de dados do usuário é consultado para obter informações de encaminhamento. Você pode considerar isso um complemento do mecanismo de alias, exceto que o banco de dados deve ser distribuído; os aliases são locais para um host específico. Talvez isso não esteja disponível se o seu sendmail não tiver a opção USERDB compilada. |
ForkEachJob | Bifurque cada trabalho durante a execução da fila. Pode ser conveniente em máquinas com pouca memória. |
SevenBitInput | Faixa de mensagens recebidas para sete bits. |
EightBitMode = mode | Defina o tratamento da entrada de oito bits para destinos de sete bits para o modo: m (mimefy) será convertido para o formato MIME de sete bits, p (aprovado) passará como oito bits (mas viola os protocolos) es (estrito) retornará a mensagem. |
MinQueueAge = timeout | Define quanto tempo um trabalho deve fermentar na fila entre tentativas de enviá-lo. |
DefaultCharSet = charset | Define o conjunto de caracteres padrão usado para rotular dados de 8 bits que não são rotulados. |
DialDelay = sleeptime | Se abrir uma conexão falhar, dormir por sleeptime segundos e tente novamente. Útil em sites de discagem sob demanda. |
NoRecipientAction = action | Definir o comportamento quando não há cabeçalhos de destinatário ( Para: , Cc: ou Bcc: ) na mensagem para a ação : nenhum deixa a mensagem inalterada, adicione-a adiciona um To: cabeçalho com os destinatários do envelope, adicionar-aparentemente-to acrescenta um cabeçalho Aparentemente para: com os destinatários do envelope, o add-bcc adiciona um cabeçalho Bcc: vazio e o add-to-undisclosed adiciona um cabeçalho com a mensagem ` Para: destinatários não revelados :; ‘ |
MaxDaemonChildren = N | Define o número máximo de crianças que um daemon SMTP de entrada permitirão gerar a qualquer momento para N . |
ConnectionRateThrottle = N | Define o número máximo de ligações por segundo para a porta SMTP para N . |
Nos aliases, o primeiro caractere de um nome pode ser uma barra vertical (” | “) para causar a interpretação do restante do nome como um comando para canalizar o correio. Pode ser necessário citar o nome para impedir que o sendmail suprima os espaços em branco entre os argumentos. Por exemplo, um alias comum é:
msgs: "| / usr / bin / msgs -s"
Os aliases também podem ter a sintaxe ” : include: filename ” para solicitar ao sendmail que leia o arquivo nomeado para obter uma lista de destinatários. Por exemplo, um alias como:
poetas: ": include: /usr/local/lib/poets.list"
leia /usr/local/lib/poets.list para obter a lista de endereços que compõem o grupo.
Status de saída
O Sendmail retorna um status de saída descrevendo o que ele fez. Os códigos de saída estão listados abaixo e definidos em <sysexits.h> .
EX_OK | Conclusão bem-sucedida em todos os endereços. |
EX_NOUSER | Nome de usuário não reconhecido. |
EX_UNAVAILABLE | Catchall, significando que os recursos necessários não estavam disponíveis. |
EX_SYNTAX | Erro de sintaxe no endereço. |
EX_SOFTWARE | Erro interno de software, incluindo argumentos incorretos. |
EX_OSERR | Erro temporário no sistema operacional , como “não é possível bifurcar”. |
EX_NOHOST | Nome do host não reconhecido. |
EX_TEMPFAIL | Não foi possível enviar a mensagem imediatamente, mas estava na fila. |
Invocações alternativas
Se chamado como newaliases , o sendmail recriará o banco de dados de alias.
Se chamado como mailq , o sendmail imprimirá o conteúdo da fila de mensagens.
Se chamado como hosttat , o sendmail imprimirá o banco de dados de status persistente do host.
Se chamado como purgestat , o sendmail limpará as entradas expiradas do banco de dados de status do host persistente.
Se chamado como smtpd , o sendmail atuará como um daemon, como se a opção -bd tivesse sido especificada.
arquivos
Exceto pelo arquivo /etc/mail/sendmail.cf , os seguintes nomes de caminho são todos especificados em /etc/mail/sendmail.cf . Portanto, esses valores devem ser considerados apenas aproximações.
/ etc / mail / aliases | dados brutos para nomes alternativos |
/etc/mail/aliases.db | banco de dados de nomes alternativos |
/etc/mail/sendmail.cf | arquivo de configuração |
/ etc / mail / helpfile | arquivo de ajuda |
/ etc / mail / statistics | estatísticas coletadas |
/ var / spool / mqueue / * | arquivos temporários |
Exemplos
sendmail [email protected]
O sendmail lerá seu e-mail a partir da entrada padrão e tentará enviar o e-mail quando você inserir um único ponto (” . “) em uma nova linha e pressione Enter. Como exemplo, depois de executar o comando acima, você pode digitar:
De: [email protected] Para: [email protected] Olá, esta é a minha mensagem e estou enviando para você! .
e o sendmail tentará enviá-lo.
Comandos relacionados
biff – Receba notificações detalhadas por e-mail na linha de comando.
correio – Leia, componha e gerencie correio.
mailx – processa mensagens de correio.
newalias – Instale novos aliases de olmo.
pine – Um cliente para usar correio e grupos de notícias.