Capítulo 12. Correio e news

Índice
12.1. sendmail
12.2. fetchmail
12.3. Correspondência com o mutt
12.4. Como receber a correspondência
12.5. Como enviar a correspondência
12.6. Ferramentas avançadas para correio eletrônico
12.7. Como verificar um endereço de correio eletrônico
12.8. News com tin

Neste capítulo é explicado como preparar o sistema para o o uso do correio eletrônico e das news. Trata-se de um tópico que, por causa da sua complexidade, se for tratado de forma geral, corre o risco de se tornar incompreensível para quem se aproxima pela primeira vez. Isto deve-se ao fato de que existe uma grande multiplicidade de situações possíveis (seja no que diz respeito às tipologias das conexões, seja no que se refere ao modo de trabalho) e que não se trata apenas de configurar um programa, mas de compor um sofisticado grupo de programas que cooperam para o funcionamento do sistema. Por esse motivo o tratamento da questão é ilustrado por um exemplo que descreve uma possível configuração para um PC de uso doméstico conectado à Internet através de um provedor, uma situação muito comum que, ainda que não apresente dificuldades específicas, pode-se revelar bastante espinhosa de se manejar quando não se sabe onde se deve por as mãos.

Além da preparação do sistema, descreve-se a configuração necessária para dois dentre os mais difundidos e apreciados programas de correio eletrônico e news: o mutt e o tin. Os programas em si mesmos não são descritos, até porque são simples de usar e bem documentados. Naturalmente, tanto o mutt quanto o tin não são escolhas obrigatórias e o usuário é livre para instalar os aplicativos que preferir. Em particular, quem não gosta de programas em modo texto, pode encontrar alternativas válidas no X.

Em resumo, os programas exigidos pela configuração descrita neste capítulo são:

Destes, apenas o sendmail e o m4 já estão presentes no sistema básico. Os outros podem ser instalados a partir da coleção de pacotes.

Antes de prosseguir, gostaria de lembrar ainda uma vez que nenhum dos programas apresentados neste capítulo é uma escolha obrigatória. Existem numerosas outras alternativas para cada um deles mas, mesmo assim, constituem um bom ponto de partida. Também a estratégia utilizada para o envio e recebimento de correspondência não é único. Cada um pode modificá-la segundo a própria configuração e as próprias exigências.

No extremo oposto dos programas e da estratégia ilustrados neste capítulo há o uso de um programa faz-tudo como o Netscape Communicator. Com esse tipo de programa pode-se navegar na Internet, receber e enviar mensagens e ler artigos nos newsgroups. Além disso, a sua configuração é muito simples. A desvantagem desse tipo de abordagem é que o Netscape é um sistema fechado, que não coopera com os outros programas do NetBSD.

Uma outra abordagem muito seguida é a de ler a correspondência e as news utilizando-se dos recursos específicos do emacs. O emacs certamente não tem necessidade de apresentação para os apaixonados pelo Unix mas, para quem não saiba, trata-se de um editor avançado (na verdade, chamá-lo de editor é um pouco reducionista) que se transforma em um verdadeiro ambiente de trabalho dentro do qual é possível ler a correspondência e as news, além de efetuar muitas outras operações. A configuração do emacs para correio e news está descrita no manual do programa.

Na seqüência deste capítulo será feita referência a um host ligado à Internet através de uma conexão serial PPP via modem com um provedor. Os dados para a configuração são:

Antes de começar, um pouco de terminologia:

MUA

(mail user agent): programa que permite escrever e ler a correspondência. Por exemplo: mutt, elm e pine, mas também o simples mail pré-instalado.

MTA

(mail transfer agent): programa que responde pelo encaminhamento da correspondência, transferindo-a de um computador a outro e localmente. O MTA é o programa que decide o percurso que a correspondência deve seguir para chegar ao seu destino. Nos sistemas BSD (mas não só) o padrão é o sendmail.

MDA

(mail delivery agent): programa, geralmente usado pelo MTA, que serve para entrega da correspondência. Por exemplo, para inserir fisicamente as mensagens nas caixa postal do usuário destinatário. O sendmail, por exemplo, utiliza um ou mais MDAs para fazer a entrega da correspondência.

A Figura 12-1 ilustra o sistema de correspondência que se quer organizar. Entre a rede doméstica (ou mesmo um host isolado) e o provedor há uma conexão PPP via modem. Os "balões" de borda larga referem-se a comandos executados explicitamente pelo usuário. Os "balões" restantes são os programas executados automaticamente. Os números nos círculos referem-se às várias fases lógicas do processo de gerenciamento do ciclo da correspondência:

  1. Na fase (1) a correspondência é tirada (por download) do servidor POP do provedor mediante o fetchmail, que usa o sendmail para pô-la na caixa postal do usuário.

  2. Na fase (2) o usuário executa o mutt (ou um outro cliente de sua escolha) para ler a correspondência, responder às mensagens recebidas e escrever outras novas.

  3. Na fase (3) o usuário envia a correspondência pelo mutt. As mensagens são acumuladas na área da spool (lançadeira).

  4. Na fase (4) o usuário chama o sendmail para transferir as mensagens para o servidor SMTP do provedor de onde serão expedidas aos destinatários.

A conexão com o provedor dever estar ativa somente durante as fases (1) e (4). Para as restantes operações pode ser desativada tranqüilamente.

Figura 12-1. Estrutura do sistema de correspondência

12.1. sendmail

Quando um MTA, o sendmail no caso, recebe uma mensagem de correio para expedir, em se tratando de uma mensagem local, expede-a diretamente. Do contrário, se a mensagem está destinada a um outro domínio, deve procurar o endereço do servidor de correio eletrônico do domínio em questão. Para fazer isso o MTA apoia-se no serviço de DNS (descrito no Capítulo 11). O servidor DNS do domínio de destinação conhece o endereço do servidor de correio (record MX) e o fornece ao MTA que, nesse ponto, pode expedir a mensagem ao servidor destinatário.

O MTA mais difundido, pelo menos no ambiente BSD, é o sendmail. O comportamento do sendmail é controlado pelo arquivo de configuração /etc/mail/sendmail.cf e por uma série de arquivos acessórios. Em geral, a menos que se saiba o que se está fazendo, não é aconselhável escrever ou modificar este arquivo diretamente. O arquivo de configuração pode ser automaticamente gerado com o uso de um conjunto de macros M4 que facilita muito a tarefa.

Nota: nas versões do NetBSD precedentes à 1.5, os arquivos de configuração do sendmail encontravam-se no /etc ao invés do /etc/mail.

Mesmo utilizando as macros, a configuração do sendmail é um tópico bastante hostil (para dizer pouco) e na seqüência limito-me a mostrar um exemplo básico, que pode ser usado como ponto de partida e modificado para gerir a própria correspondência frente a configurações diferentes. Para uma conexão à Internet via modem, o arquivo apresentado pode ser usado tal qual, sem necessidade de qualquer modificação (salvo naturalmente inserir os próprios dados no lugar dos que estão no exemplo).

O primeiro problema a resolver é que a rede doméstica é totalmente fictícia. Ou seja, não existe realmente na Internet e, portanto, os nomes e os endereços internos não têm sentido para o mundo externo. Em suma, o host "ape.insetti.net" não é alcançável por nenhum outro host da Internet e, se enviamos um e-mail com o nome local do host no remetente, ninguém poderá responder (não somente. Alguns destinatários rejeitarão a mensagem porque o remetente não existe). O verdadeiro endereço, aquele que é visível para todos, é o designado pelo provedor "alan@bignet.it". Disso se vai ocupar o sendmail, devidamente configurado, no momento de transferir a correspondência.

O segundo aspecto a considerar é que convém instruir o sendmail para fazê-lo enviar a correspondência ao servidor de mail do provedor. Na configuração descrita nesta seção, de fato, o sendmail não se põe diretamente em contato com os servidores de correio dos destinatários das nossas mensagens (como decrito no início desta seção), mas se apoia somente no servidor do provedor, utilizando-o como relay. Isso torna muito mais veloz o envio da correspondência, transferindo todo o trabalho de busca e de conexão ao servidor de mail do provedor.

Nota: é dito que um servidor de correio age como relay quando se encarrega de encaminhar a correspondência que não é de sua competência direta. Neste caso o servidor de correio relay age como intermediário, providenciando o encaminhamento da correspondência ao servidor destinatário (ou a um outro servidor relay).

Uma vez que a conexão com o provedor não está sempre ativa, pode-se desabilitar a inicialização do sendmail como dæmon no /etc/rc.conf com a linha 'sendmail=NO'. A correspondência local será mesmo assim expedida corretamente, enquanto que para transferir correspondência ao provedor será necessário executar o sendmail manualmente (quando a conexão com o provedor estiver ativa, naturalmente).

Comecemos pois o trabalho de configuração do sendmail.

12.1.1. Configuração com genericstable

Este tipo de configuração utiliza o arquivo /etc/mail/genericstable que contém as regras explícitas para se reescrever os endereços internos à rede local.

A primeira coisa, portanto, será criar o arquivo genericstable. Por exemplo:

carlo:         alan@bignet.it
root:          alan@bignet.it
news:          alan@bignet.it      

Por motivos de eficiência o genericstable deve ser transformado com o comando:

# /usr/sbin/sendmail -bi -oA/etc/mail/genericstable      

Agora é o momento de criar o protótipo que será utilizado para gerar o novo arquivo de configuração do sendmail. A primeira coisa a fazer é deslocar-se para o diretório em que será criado o novo arquivo de configuração:

# cd /usr/share/sendmail/m4      

Suponhamos um protótipo chamado mycf.mc. O conteúdo do arquivo é o seguinte:

divert(-1)dnl
include(`../m4/cf.m4')dnl
VERSIONID(`mycf.mc criado por carlo@ape.insetti.net May 18 2001')dnl
OSTYPE(bsd4.4)dnl

dnl # Definições para masquerading.  São reescritos os
dnl # endereços do tipo
dnl #     carlo@ape.insetti.net
dnl #     carlo@ape
GENERICS_DOMAIN(ape.insetti.net ape)dnl
FEATURE(genericstable)dnl
FEATURE(masquerade_envelope)dnl

define(`SMART_HOST',`mail.bignet.it')dnl

FEATURE(redirect)dnl
FEATURE(nocanonify)dnl

dnl # A característica (feature) seguinte serve sobretudo se o sendmail for usado
dnl # junto com o fetchmail. Fetchmail chama o sendmail para expedir a 
dnl # correspondência. Se o sendmail não consegue resolver o nome do emitente
dnl # a correspondência são é enviada. Por exemplo:
dnl # MAIL FROM:<www-owner@netbsd.org>... Sender domain must exist
FEATURE(`accept_unresolvable_domains')dnl

dnl # accept_unqualified_senders satisfaz alguns MUA, que enviam
dnl # a correspondência como
dnl #	MAIL FROM:<carlo>
FEATURE(`accept_unqualified_senders')dnl

dnl # A correspondência para o mailer 'smtp' é posta na fila: o sendmail não 
dnl # tenta enviá-la diretamente (a flag 'e' indica 'expensive').
dnl # O sendmail começa a lamentar-se depois de 16 horas de expedição frustrada.
define(`SMTP_MAILER_FLAGS',`e')dnl
define(`confCON_EXPENSIVE',`True')dnl
define(`confTO_QUEUEWARN', `16h')dnl

dnl # Para os usuários europeus
define(`confDEF_CHAR_SET',`ISO-8859-1')dnl

dnl # Habilitar as três linhas seguintes para utilizar o procmail para 
dnl # o envio da correspondência local (a terceira linha é opcional, 
dnl # somente as duas primeiras são necessárias)
dnl # define(`PROCMAIL_MAILER_PATH', /usr/pkg/bin/procmail)dnl
dnl # FEATURE(local_procmail)dnl
dnl # MAILER(procmail)dnl

dnl # Os dois mailers seguintes devem ser sempre definidos
MAILER(local)dnl
MAILER(smtp)dnl      

Esta configuração aponta para a transformação dos endereços do tipo "ape.insetti.net" nos nomes reais, através de busca no arquivo /etc/mail/genericstable. Além disso fica especificado que a correspondência deva ser enviada ao host "mail.bignet.it". O significado das opções está descrito em detalhe no arquivo /usr/share/sendmail/README.

Para criar o próprio arquivo personalizado é suficiente inserir os próprios dados modificando apenas duas linhas do exemplo precedente, isto é:

GENERICS_DOMAIN(ape.insetti.net ape)dnl
define('SMART_HOST','mail.bignet.it')dnl      

Geremos o novo arquivo de configuração, salvando antes o arquivo anterior.

# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak
# m4 mycf.mc > /etc/mail/sendmail.cf
      

Um outro arquivo importante é o /etc/mail/aliases que, todavia,pode ser mantido com a configuração original. Mesmo assim é necessário executar o comando:

# newaliases       

Agora está tudo pronto para expedir a correspondência.

12.1.2. Teste da configuração

Agora que a configuração do sendmail está completa, pode-se proceder a algumas verificações simples para confirmarmos se tudo funciona corretamente. O primeiro teste poderá ser expedir uma mensagem local:

$ sendmail -v carlo
Subject: teste

Prova
.
carlo... Connecting to local...
carlo... Sent      

Seguir o esquema do exemplo, deixando uma linha vazia depois de Subject: e concluindo a mensagem com uma linha que contém só um ponto. A mensagem enviada deveria ser legível utilizando-se o cliente de correio eletrônico. Em particular, verifique-se o conteúdo do campo

From: alan@bignet.it      

no qual deve constar a reescrita do endereço.

Uma segunda verificação importante é o teste das regras de reescrita definidas no arquivo de configuração do sendmail. Para fazer isso executa-se o sendmail em modo de teste: o sendmail lê um endereço e mostra todas as passagens realizadas para transformá-lo. Nesse modo podem-se também efetuar outros tipos de teste, assim como visualizar várias informações.

Inicializar o sendmail em modo de teste usando a opção -bt

$ /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>      

Para ver a ajuda, utilizar o comando '?'.

Em primeiro lugar verifiquemos o funcionamento correto do arquivo genericstable dando o seguinte comando:

/map generics carlo
map_lookup: generics (carlo) returns alan@bignet.it      

Até aqui tudo bem. O sendmail encontrou o nome local e o seu correspondente real no mapa generics.

Agora verifiquemos a reescrita do remetente no envelope executando os comandos:

/tryflags ES
/try smtp carlo@ape.insetti.net
      

O resultado deveria ser similar ao seguinte:

Trying envelope sender address carlo@ape.insetti.net for mailer smtp
rewrite: ruleset   3   input: carlo @ ape . insetti . net
rewrite: ruleset  96   input: carlo < @ ape . insetti . net >
rewrite: ruleset  96 returns: carlo < @ ape . insetti . net . >
rewrite: ruleset   3 returns: carlo < @ ape . insetti . net . >
rewrite: ruleset   1   input: carlo < @ ape . insetti . net . >
rewrite: ruleset   1 returns: carlo < @ ape . insetti . net . >
rewrite: ruleset  11   input: carlo < @ ape . insetti . net . >
rewrite: ruleset  51   input: carlo < @ ape . insetti . net . >
rewrite: ruleset  51 returns: carlo < @ ape . insetti . net . >
rewrite: ruleset  61   input: carlo < @ ape . insetti . net . >
rewrite: ruleset  61 returns: carlo < @ ape . insetti . net . >
rewrite: ruleset  94   input: carlo < @ ape . insetti . net . >
rewrite: ruleset  93   input: carlo < @ ape . insetti . net . >
rewrite: ruleset   3   input: alan @ bignet . it
rewrite: ruleset  96   input: alan < @ bignet . it >
rewrite: ruleset  96 returns: alan < @ bignet . it >
rewrite: ruleset   3 returns: alan < @ bignet . it >
rewrite: ruleset  93 returns: alan < @ bignet . it >
rewrite: ruleset  94 returns: alan < @ bignet . it >
rewrite: ruleset  11 returns: alan < @ bignet . it >
rewrite: ruleset   4   input: alan < @ bignet . it >
rewrite: ruleset   4 returns: alan @ bignet . it
Rcode = 0, addr = alan@bignet.it
>      

Como se pode ver o endereço local foi reescrito como endereço real, que aparecerá nas mensagens quando deixarem o sistema.

Um resultado equivalente pode-se obter com o comando:

/try smtp carlo	

Para verificar a reescrita do remetente no cabeçalho, repitamos os comandos precedentes mudando as flags. O resultado é equivalente.

/tryflags HS
/try smtp carlo@ape.insetti.net
      

12.2. fetchmail

A correspondência chega ao endereço, depositando-se no provedor. Nesse momento é necessário transferí-la (fisicamente) para o computador local. O fetchmail é um programa que captura a correspondência de um servidor de correio remoto e a encaminha ao sistema local para entrega (geralmente através do sendmail). O fetchmail é simples de usar e de configurar. Depois de instalá-lo basta criar o arquivo .fetchmailrc no próprio diretório home (dentro vai a senha; atenção às permissões...). Eis um exemplo:

poll mail.bignet.it
protocol POP3 
username alan there with password pZY9o is carlo here
flush 
mda "/usr/sbin/sendmail -oem %T"    

Para transferir a correspondência basta executar o comando:

$ fetchmail    

e depois podemos lê-la com o mutt.

12.3. Correspondência com o mutt

O mutt é um programa de correio que recebe muitas adesões tanto porque é rápido quanto porque é simples de usar e poderoso ao mesmo tempo. O mutt tem uma página de manual muito enxuta. A verdadeira documentação encontra-se em /usr/pkg/share/doc/mutt/, em particular no manual.txt.

A configuração do mutt se faz através do arquivo .muttrc, que deve ser criado no próprio diretório home (usualmente copiando o arquivo de exemplo fornecido com o mutt e depois modificando-o). O exemplo à frente mostra como modificar algumas linhas do arquivo para obter os seguintes efeitos:

set copy=yes
set edit_headers
set folder="~/Mail"
unset force_name
set mbox="~/Mail/incoming"
set record="~/Mail/outgoing"
unset save_name

bind pager <up> previous-page
bind pager <down> next-page

color normal white black
color hdrdefault blue black
color indicator white blue
color markers red black
color quoted cyan black
color status white blue
color error red white
color underline yellow black

mono quoted standout
mono hdrdefault underline
mono indicator underline
mono status bold

alias pippo Pippo Verdi <pippo.verdi@pluto.net>    

Para executar o mutt é suficiente executar o comando

$ mutt    

12.4. Como receber a correspondência

Esta seção descreve uma estratégia simples para receber e ler a correspondência. A conexão com o provedor é ativada apenas durante o tempo necessário à transferência da correspondência, que depois pode ser lida offline.

  1. Ativar a conexão com o provedor.

  2. Executar o comando fetchmail.

  3. Fechar a conexão com o provedor.

  4. Ler a correspondência com o mutt.

12.5. Como enviar a correspondência

Uma vez escrita e enviada a correspondência com o mutt, deve-se remetê-la ao servidor do provedor com o sendmail. O envio da correspondência com o mutt, que se efetua com o comando y, limita-se a enfileirar as missivas na spool (lançadeira). Neste ponto, se o sendmail não está ativo como dæmon, é preciso tomar a iniciativa de invocá-lo explicitamente. Os passos a seguir são:

  1. Escrever a correspondência com o mutt, executar o comando de envio e sair do mutt.

  2. Ativar a conexão com o provedor.

  3. Executar o comando /usr/sbin/sendmail -a -v para transferir a correspondência ao provedor.

  4. Fechar a conexão com o provedor.

12.6. Ferramentas avançadas para correio eletrônico

Quando se começa a usar o correio eletrônico, geralmente não se tem exigências muito sofisticadas e, portanto, a configuração padrão descrita acima é mais que suficiente. Com o passar do tempo, entretanto, para muitos usuários o volume diário de correspondência cresce e se diferencia. Nessa fase torna-se necessário organizar racionalmente as mensagens, separando-as em "caixinhas" diferentes, e nos damos conta de precisar realizar um grande número de operações manuais repetitivas todo dia para classificar a correspondência. Por exemplo, quem se inscreve em uma mailing list pode encontrar-se na situação de ter que selecionar cotidianamente um notável número de mensagens para transferí-las da mailbox geral para aquela mailbox que criamos para dedicar-se apenas à mailing list.

Porque efetuar à mão operações que podem ser agilmente desenvolvidas por um programa? Existem vários instrumentos complementares que se inserem no fluxo normal da correspondência e permitem realizar várias operações sobre a mesma, com base em configurações pré-fixadas pelo usuário. Entre as ferramentas mais conhecidas e usadas encontramos:

Na seqüência desta seção será descrito um exemplo de uso do procmail, sem todavia descer aos detalhes da configuração e das características do programa, já que se trata de um instrumento que comporta imensa variedade de usos. Limitar-nos-emos, assim, a descrever a configuração do sendmail e do procmail para um caso muito comum: a separação da correspondência proveniente de uma mailing list. Para esse tipo de configuração far-se-á de modo que o sendmail utilize o procmail como um mailer local. O procmail, por sua vez, lerá um arquivo de configuração especificado para conter as regras de separação da correspondência.

Em primeiro lugar é preciso instalar o procmail, recorrendo ao sistema de pacotes (mail/procmail).

Depois é necessário configurar o sendmail para que use o procmail. Para fazer isso é suficiente tirar o comentário das linhas relativas ao procmail no arquivo de configuração do sendmail já descrito:

define(`PROCMAIL_MAILER_PATH', /usr/pkg/bin/procmail)dnl
FEATURE(local_procmail)dnl
MAILER(procmail)dnl    

A primeira linha especifica o percurso do programa procmail e deve ser alterada segundo o local em que ele estiver instalado (o que pode ser determinado com o comando which procmail). A segunda linha indica ao sendmail para usar o procmail como mailer local. A terceira adiciona o procmail à relação dos mailers do sendmail (esta linha é opcional).

Enfim cria-se o arquivo de configuração do procmail, .procmailrc, nos próprios diretórios home. Este arquivo contém as regras para a expedição da correspondência em caráter local e é utilizado pelo programa para decidir a destinação das mensagens.

A título de exemplo, imagine-se estar inscrito em uma mailing list sobre rosas, cujo endereço é . Suponhamos, além disso, que todas as mensagens que chegam desta mailing list contenham, no cabeçalho, a espressão

Delivered-To: roses@flowers.org      
O arquivo de configuração do procmail tem um aspecto do seguinte tipo:

PATH=/bin:/usr/bin:/usr/pkg/bin
MAILDIR=$HOME/Mail
LOGFILE=$MAILDIR/from

:0
* ^Delivered-To: roses@flowers.org
roses_list    

O arquivo precedente contém uma só regra de redistribuição, que começa com a linha ":0" que o usuário terá oportunamente criado no diretório $MAILDIR. Note-se que o $MAILDIR é o mesmo diretório indicado na diretriz do arquivo de configuração do Mutt.

set folder="~/Mail"    

As mensagens provenientes da mailing list são identificadas pela linha:

* ^Delivered-To: roses@flowers.org    

contida no cabeçalho. As mensagens remanescentes irão para a mailbox geral.

A mailing list é naturalmente apenas um exemplo, e o procmail pode ser usado para redistribuir qualquer tipo de mensagem com base, por exemplo, na proveniência, no conteúdo, etc.

Para assegurar que o procmail seja usado como um mailer local pelo sendmail, pode-se executar este último em modo de teste, da seguinte maneira:

$ /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>    

Agora se invoca a lista dos mailers reconhecidos pelo sendmail com o comando

> =M    

No output deveria aparecer uma linha desse tipo:

mailer 3 (local): P=/usr/pkg/bin/procmail S=EnvFromL/HdrFromL ...    

Como sempre, para ulteriores detalhes e para se ter uma idéia mais precisa das potencialidades do procmail, consultar as páginas de manual procmail(1), procmailrc(5) e procmailex(5), contendo, a última, arquivos de configuração.

12.7. Como verificar um endereço de correio eletrônico

Antes de passar aos newsgroups decidí inserir este pequeno "truque" que pode ser útil com o correio: trata-se de verificar interativamente a veracidade de um endereço de e-mail.

Suponhamos querer verificar o usuário carlo@dominio.com. O método é o seguinte:

$ telnet dominio.com smtp
Trying aa.bb.cc.dd...
Connected to dominio.com.
Escape character is '^]'.
220 dominio.com ESMTP Sendmail 8.9.3/8.9.3; Fri, 30 Apr 1999
VRFY carlo
250 Carlo Rossi
VRFY abcde
550 abcde... User unknown
^]
telnet> quit
Connection closed.    

12.8. News com tin

Com o termo news indica-se o conjunto dos artigos dos newsgroups de USENET, um serviço disponível na Internet. Cada newsgroup recolhe artigos relacionados com um tópico específico. O mecanismo de leitura dos artigos é diferente em relação às mailing lists. Quando nos inscrevemos em uma mailing list, os artigos são-nos enviados pelo correio e para lê-los (e respondê-los) usa-se um programa de correio (como, por exemplo, o mutt. A consulta das news, por outro lado, ocorre de modo direto, utilizando um programa chamado newsreader como, por exemplo, o tin, que permite que se faça a inscrição nos grupos que nos interessam e seguir-lhes os threads (enredos, encadeamentos).

Uma vez instalado o programa, a única coisa a fazer é estabelecer o nome do servidor de NNTP, escrevendo-o no arquivo /usr/pkg/etc/nntp/server. Por exemplo;

news.bignet.it    

Feito isso, pode-se executar o programa com o comando rtin. Na tela vai aparecer uma série de escritos desse tipo:

$ rtin
Connecting to news.bignet.it...
news.bignet.it InterNetNews NNRP server INN 1.7.2 08-Dec-1997 ready (posting ok).  
Reading groups from active file...
Checking for new groups... 
Reading attributes file...
Reading newsgroups file...
Creating newsrc file...
Autosubscribing groups...
Reading newsrc file...    

É necessário ter paciência quando se conecta pela primeira vez, porque é descarregada uma lista interminável de newsgroups nos quais podemos nos inscrever: a operação dura vários minutos. Terminado o descarregamento aparece a tela do programa, geralmente vazia. Para ver a lista dos grupos pressione-se a tecla y. Para subscrever-se em um grupo, colocar-se sobre o nome do grupo e pressionar s.

Para acelerar as inicializações posteriores pode-se usar o comando rtin -Q. Desse modo evita-se a busca de novos newsgroups, carregam-se apenas os grupos ativos (-n) e não se carregam as descrições dos grupos (-d). Naturalmente não será possível usar o comando y (yank) durante a sessão do tin. Quando se inicia o tin desse modo, o programa não é capaz de saber quais newgroups são regulares.