Posts com Tag ‘mail’

Mime types

Publicado: 12/05/2013 em Programação
Tags:, ,

Mime – Multipurpose Internet Mail Extensions

“Mime Type” consiste de de um sistema de identificadores padronizados (gerenciados pela IANA) consistindo de um tipo e um sub-tipo, separados por uma barra. A combinação de tipo e subtipo é geralmente chamada “MIME type“. Exemplos:
text/html
text/plain
image/gif

Assim:

  • “type” é referente a um grupamento lógico de vários MIME types que são relacionados um ao outro; isto é, uma categorização de alto nível;
  • “subtypes” são específicos para um determinado tipo de arquivo dentro do seu grupo.

O MIME identifica o tipo de dado contido no arquivo. Como consequência, MIME é largamente utilizado para indicar qual o programa que deveria ser utilizado para abrir o arquivo. Por exemplo, usando o valor do cabeçalho “Content-type” definido em uma resposta HTTP, o navegador pode abrir o arquivo com uma aplicação apropriada. Na máquina local, o arquivo “/etc/mime.types” contém as regras definidas para mapeamento do “filename” para os MIME types.

Sobre o “Content-type”, este é simplesmente um cabeçalho presente em muitos protocolos, tal como em HTTP, que faz uso dos “MIME types” para especificar a natureza do arquivo que está sendo tratado.

Abaixo temos exemplos de alguns Mime Type padrões:

Código tratador         Extensão do Arquivo
 (Mime Types)
---------------------------------------------
image/x-icon                    ico
image/bmp                       bmp
image/jpeg                      jpeg jpg jpe
image/svg+xml                 svg
image/png                       png
text/plain                        asc txt
text/css                           css
text/html                         html htm shtml
application/xml                 xml xsl
application/cgi                  cgi
application/x-javascript        js
application/x-tar               tgz tar
application/pdf                 pdf 
application/ogg                ogg
application/x-httpd-php-source  phps

Referências:
1- Official IANA MIME type list

Ícone do MuttO Mutt é um aplicativo baseado em texto (para terminais) que interage com os usuários através de menus diferentes, que são na sua maioria line-/entry-based ou baseado em página. Um menu baseado em linha é o conhecido menú de “índice” (listando todas as mensagens da pasta atualmente aberta) ou o “alias” menu (permitindo-lhe selecionar os destinatários a partir de uma lista). É um aplicativo poderoso para leitura e envio de emails em sistemas operacionais UNIX/Linux.

O mutt é tão somente um MUA (“Mail User Agent”, que é a parte que o usuário enxerga para enviar e receber emails.), ou seja, ele NÃO é um MTA (“Mail Transfer Agent”, que é a parte que faz o roteamento e a transferência do mail entre hosts, ISPs, e assim por diante).

1. Instalar o Mutt
O mutt possui os pacotes mutt e mutt-patched o qual inclui alguns patches extras, como por exemplo a lista das caixas de e-mail de um dos lados da tela (direito ou esquerdo dependendo da configuração do .muttrc);

# apt-get install mutt mutt-patched

Após a instalação o mutt ainda não tem seu arquivo de configuração. Caso o mutt seja chamado pela linha de comando, este tentará ler e-mail’s da máquina local. Não há problema nisso, mas certamente não haverá e-mail a ser mostrado.

2. Os arquivos de configuração do Mutt
As configurações básicas do Mutt estão na pasta /etc/Muttrc.d/. Nesta pasta existem alguns arquivos com a extensão “.rc”. São arquivos de diretivas de configurações gerais que neste primeiro momento não necessitarão de alterações. Já na pasta /usr/share/doc/mutt existem arquivos de documentação e de exemplos. Em especial, veja os arquivos manual.txt.gz (manual completo) e o arquivo README.Debian (aqui algumas dicas de como configurar o .muttrc). Se o usuário dispor de um navegador, o manual também está disponível na forma de hipertexto em file:///usr/share/doc/mutt/html/index.html. Na subpasta /exemplos, tem, entre outros, o arquivo Muttrc.gz que deve ser olhado.

3. Configurar as diretivas gerais do Mutt
O arquivo principal de configuração do mutt é o .muttrc. Este arquivo fica na pasta raiz do usuário. O Mutt é muito configurável e muito funcional. Pode-se configurar o básico do Mutt e explorar opções mais avançadas em um outro momento.

Para ter o .muttrc funcional rapidamente, sugere-se que utilize as configurações padrões que ficam em /etc/Muttrc.d/ e se personalize para ter acesso ao servidor de email MTA do usuário. Faça isso através de um laço for da seguinte forma:

$ for i in /etc/Muttrc.d/*.rc; do cat $i >> ~/.muttrc;done

Deve ser verificado se foi gerado o arquivo .muttrc na pasta raiz do usuário, contendo as diretivas de configurações mais comuns. O próximo passo é ajustar as diretivas em .muttrc para o Mutt poder ler a caixa de e-mail do usuário, por exemplo imap do gmail.

4. Configurar as diretivas de configuração do Mutt para acesso ao Gmail

Adicione as seguintes linhas ao arquivo ~/.muttrc:

set realname="José Osório dos Reis" # Nome real para aparecer no email
set imap_user = 'usuario_gmail@gmail.com'
set imap_pass=""
set folder = "imaps://imap.gmail.com:993/"
set spoolfile = +INBOX
set imap_check_subscribed
set smtp_url = "smtp://usuario_gmail@smtp.gmail.com:587/"
set smtp_pass= ""
set sort = threads
set sort_aux = reverse-date

Note que o Mutt irá solicitar senhas para imap e smtp. As senhas também podem ser colocadas diretamente nos campos em aspas. Mas cuidado, pois fragiliza a SEGURANÇA.

As linhas seguintes completam as funcionalidades básicas do Mutt com gmail, ajustando as questões de pastas laterais, mover para lixeira, gravar e-mail enviados em sentmail, entre outras coisas:

set trash=+[Gmail]/Trash
set record="+[Gmail]/Sent Mail"
set postponed="+[Gmail]/Drafts"
set header_cache="~/.mutt/cache/headers"
set message_cachedir="~/.mutt/cache/bodies"
set certificate_file=~/.mutt/certificates
set sidebar_width=25
set sidebar_visible=yes #no
set sidebar_delim='|'
color sidebar_new yellow default
bind index \CP sidebar-prev
bind index \CN sidebar-next
bind index \CO sidebar-open

Observe que para nagegar no menu da esquerda (para selecionar a pasta de mensagens do Gmail) no Mutt, deve-se usar e . Para abrir as mensagens da pasta selecionada, deve-se usar .

5. Configurar diretivas de cores do Mutt

# colors
color normal     white black
color attachment brightyellow black
color hdrdefault cyan black
color indicator  black cyan
color markers    brightred black
color quoted     green black
color signature  cyan black
color status     brightgreen blue
color tilde      blue black
color tree       red black
color sidebar_new yellow default
color index     yellow         default  ~N      # New
color index     yellow         default  ~O      # Old
color header    yellow         default  "^from"
color header    brightgreen    default  "^from:"
color header    green      default  "^to:"
color header    green      default  "^cc:"
color header    green      default  "^date:"
color header    yellow     default  "^newsgroups:"
color header    yellow     default  "^reply-to:"
color header    brightcyan default  "^subject:"
color header    red        default  "^x-spam-rule:"
color header    yellow     default  "^x-mailer:"
color header    yellow     default  "^message-id:"
color header    yellow     default  "^Organization:"
color header    yellow     default  "^Organisation:"
color header    yellow     default  "^User-Agent:"
color header    yellow     default  "^message-id: .*pine"
color header    yellow     default  "^X-Fnord:"
color header    yellow     default  "^X-WebTV-Stationery:"
color header    yellow     default  "^X-Message-Flag:"
color header    yellow     default  "^X-Spam-Status:"
color header    yellow     default  "^X-SpamProbe:"
color header    red        default  "^X-SpamProbe: SPAM"
color body      yellow     default  "[;:]-[)/(|]"  # colorise smileys

 

6. Configurar outras diretivas do Mutt

set date_format="!%a %b %d, %Y at %I:%M:%S%p %Z"
# ordering of headers in the pager
unhdr_order *
hdr_order Date: From: To: Cc: X-Newsreader: X-Mailer: Organization: Organisation: User-Agent: X-Fnord: X-WebTV-Stationery: X-Message-Flag: Newsgroups: Reply-To: Subject:

7. Hot keys e flags
Mais comuns message index keys
Key      Description
c        change to a different mailbox
Esc c    change to a folder in read-only mode
C        copy the current message to another mailbox
Esc C    decode a message and copy it to a folder
Esc s    decode a message and save it to a folder
D        delete messages matching a pattern
d        delete the current message
F        mark as important
l        show messages matching a pattern
N        mark message as new
o        change the current sort method
O        reverse sort the mailbox
q        save changes and exit
s        save-message
T        tag messages matching a pattern
t        toggle the tag on a message
Esc t    toggle tag on entire message thread
U        undelete messages matching a pattern
u        undelete-message
v        view-attachments
x        abort changes and exit
<Return>    display-message
<Tab>    jump to the next new or unread message
@        show the author's full e-mail address
$        save changes to mailbox
/        search
Esc /    search-reverse
^L       clear and redraw the screen
^T       untag messages matching a pattern

Flat do status da mensagem:
Flag Description
D        message is deleted (is marked for deletion)
d        message has attachments marked for deletion
K        contains a PGP public key
N        message is new
O        message is old
P        message is PGP encrypted
r        message has been replied to
S        message is signed, and the signature is successfully verified
s        message is signed
!        message is flagged
*        message is tagged
n        thread contains new messages (only if collapsed)
o        thread contains old messages (only if collapsed)

8. Alguns comandos úteis via linha de comando
O comando utilizado será o mutt. Segue abaixo o exemplo:

$ cat /caminho/arquivo.txt | mutt -s "Assunto" -a /caminho/arquivoanexo fulano@dominio

Explicando:
arquivo.txt = mensagem que será inserida no corpo do e-mail
arquivoanexo = arquivo que será enviado como anexo, se necessário

Referências:
1- Arquivo de configuração do Mutt
2- Gmail: configurar clientes de email

Pommo, “pos modern mass mailer”, com uma sigla não-muito-bem casada, é um poderoso programa de envio de mails em massa, baseado em servidor web e firmemente enraizada em uma base Linux + Apache + MySQL + PHP base (LAMP): PHP (4.3.2 ou superior) e MySQL 4.1.11 (ou superior) . POMMO foi desenvolvido com o usuário final em mente, o que é demonstrado pela sua rápida instalação baseada na Web (é possível instalar e configurar tudo em menos de 15 minutos), pela sua maneira simples e poderosa de criar e enviar mailings, e pela a sua utilização intuitiva. POMMO está internacionalizado para várias linguas, incluindo Português, Espanhol, Francês Inglês e Italiano.

Enfim, um aplicativo interessante em licenciamento GPL para gerenciar listas de assinantes e envio de emails em massa para um site ou blog.

Como instalar?

  • Primeiro, certifique-se de estar instalado e funcionando o Apache, PHP e MySQL em seu servidor;
  • Faça o download da versão mais recente do Pommo: o arquivo tem um nome semelhante a “poMMo-aardvarkPR16.1.tar.gz”;
  • Extraia os arquivos do pacote baixado no seu computador: $tar -xvf poMMo-aardvarkPR16.1.tar.gz ;
  • Transfira toda a estrutura de arquivos do Pommo para a pasta que será acessada pelo Apache:
  • /var/www# cp -a /home/nome_usuario/download/pommo/ . ; para fazer a cópia recursiva de diretórios mantendo os atributos dos arquivos. Neste caso, a pasta raiz do pommo será /var/www/pommo

    Caso seja uma cópia entre máquinas diferentes (que estejam dentro de uma mesma rede), utilize o comando “scp” para fazer esta cópia. Caso a outra máquina esteja em outra rede, utilize um aplicativo de transferência de arquivos como o “gftp”, utilizando protocolo ftp ou ssh.

  • Ajuste as informações do proprietário e permissões dos arquivos. Utilizando o terminal:
  • /var/www# chmod 750 pommo
    /var/www# chown -R www-data:www-data pommo

  • Vá até o seu gerenciador MySQL e crie um banco de dados para o Pommo. Utilizando o terminal:
  • #mysql -u usuario_admin_mysql -p ; para se autenticar no MySQL
    mysql> show databases; para visualizar as bases de dados existentes
    mysql> CREATE database pommo; para criar base dados necessário ao funcionamento Pommo
    mysql> quit; para sair do MySQL

  • Abra o arquivo /var/www/pommo/config.sample.php, coloque as informações relacionadas ao seu servidor e site. Em seguida salve o arquivo como config.php. Um arquivo config.php simples pode ser assim:
  • <?php die();
    ?>
    [db_hostname] = “localhost”
    [db_username] = “root”
    [db_password] = “senha_admin_bd”
    [db_database] = “pommo”
    [db_prefix] = “pommo_”

    [lang] = pt-br

    [debug] = off
    [verbosity] = 3
    [date_format] = 3

    ** [baseURL] = “/mysite/newsletter/”
    ** [workDir] = “/path/to/pommoCache”
    [hostname] = pommo.meusite.org
    ** [hostport] = 8080

  • Acerte o Apache, dando autoridade para o novo site no servidor. Isto pode ser feito de algumas maneiras diferentes, onde uma das possibilidades é pela configuração do novo site através do arquivo /etc/apache2/httpd.conf:
  • <VirtualHost *:80>
    ServerName pommo.meusite.org
    DocumentRoot /var/www/pommo
    DirectoryIndex /index.php
    ErrorDocument 404 /documentoerro404.html
    </VirtualHost>

  • Se o Apache estiver na mesma máquina do Pommo:

    /etc/init.d/apache2 restart ; para reiniciar o apache

  • Agora utilize o seu navegador para ir até o local onde o Pommo foi instalado (por exemplo,  http://pommo.meusite.org) e siga as instruções que faltam para a instalação.
  • Endereços importantes:
    1. atualizar seus dados ou cancelar sua assinatura: http://meusite/pommo/user/login.php
    2. para inscrever-se na lista: http://meusite/pommo/user/subscribe.php

    Bom uso!

    Mais informações:
    1- Manual de instalação do Pommo
    2- Características do Pommo
    3- Gerenciar lista de assinantes com o Pommo
    4- Pommo mailing list e newsletter