Envie um email de corpo sem formatação com um anexo de texto sem formatação com mailx:
(
/usr/bin/uuencode attachfile.txt myattachedfilename.txt;
/usr/bin/echo "Body of text"
) | mailx -s 'Subject' youremail@gmail.com
Abaixo está o mesmo comando acima, sem as novas linhas
( /usr/bin/uuencode /home/el/attachfile.txt myattachedfilename.txt; /usr/bin/echo "Body of text" ) | mailx -s 'Subject' youremail@gmail.com
Verifique se você tem um arquivo /home/el/attachfile.txt
definido com este conteúdo:
<html><body>
Government discriminates against programmers with cruel/unusual 35 year prison
sentences for making the world's information free, while bankers that pilfer
trillions in citizens assets through systematic inflation get the nod and
walk free among us.
</body></html>
Se você não tiver o uuencode, leia isto: /unix/16277/how-do-i-get-uuencode-to-work
No Linux, envie email do corpo em HTML com um anexo em PDF com o sendmail:
Verifique se você tem o ksh instalado: yum info ksh
Verifique se o sendmail está instalado e configurado.
Verifique se o uuencode está instalado e disponível: /unix/16277/how-do-i-get-uuencode-to-work
Crie um novo arquivo chamado test.sh
e coloque-o em seu diretório pessoal:/home/el
Coloque o seguinte código em test.sh
:
#!/usr/bin/ksh
export MAILFROM="el@defiant.com"
export MAILTO="youremail@gmail.com"
export SUBJECT="Test PDF for Email"
export BODY="/home/el/email_body.htm"
export ATTACH="/home/el/pdf-test.pdf"
export MAILPART=`uuidgen` ## Generates Unique ID
export MAILPART_BODY=`uuidgen` ## Generates Unique ID
(
echo "From: $MAILFROM"
echo "To: $MAILTO"
echo "Subject: $SUBJECT"
echo "MIME-Version: 1.0"
echo "Content-Type: multipart/mixed; boundary=\"$MAILPART\""
echo ""
echo "--$MAILPART"
echo "Content-Type: multipart/alternative; boundary=\"$MAILPART_BODY\""
echo ""
echo "--$MAILPART_BODY"
echo "Content-Type: text/plain; charset=ISO-8859-1"
echo "You need to enable HTML option for email"
echo "--$MAILPART_BODY"
echo "Content-Type: text/html; charset=ISO-8859-1"
echo "Content-Disposition: inline"
cat $BODY
echo "--$MAILPART_BODY--"
echo "--$MAILPART"
echo 'Content-Type: application/pdf; name="'$(basename $ATTACH)'"'
echo "Content-Transfer-Encoding: uuencode"
echo 'Content-Disposition: attachment; filename="'$(basename $ATTACH)'"'
echo ""
uuencode $ATTACH $(basename $ATTACH)
echo "--$MAILPART--"
) | /usr/sbin/sendmail $MAILTO
Altere as variáveis de exportação na parte superior test.sh
para refletir seu endereço e nomes de arquivos.
Faça o download de um documento PDF de teste e coloque-o em /home/el
pdf-test.pdf
Crie um arquivo chamado /home/el/email_body.htm e coloque esta linha:
<html><body><b>this is some bold text</b></body></html>
Verifique se o arquivo pdf possui 755 permissões suficientes.
Execute o script ./test.sh
Verifique sua caixa de entrada de e-mail, o texto deve estar no formato HTML e o arquivo pdf interpretado automaticamente como um arquivo binário. Tome cuidado para não usar esta função mais do que digamos 15 vezes por dia, mesmo se você enviar os e-mails para si mesmo, os filtros de spam do Gmail podem colocar na lista negra um domínio que vomite e-mails sem oferecer a opção de deixá-los passar. E você descobrirá que isso não funciona mais, ou apenas deixa passar o anexo, ou o email não chega. Se você precisar fazer muitos testes, espalhe-os por dias ou será rotulado como spammer e essa função não funcionará mais.