Pular para o conteúdo

Rastreando suas encomendas dos Correios

Script para rastrear os pacotes dos correios que você está esperando. Assim que o pacote mudar de estado ou chegar, um email é enviado para o usuário.

O email deve estar devidamente configurado.

Um exemplo de configuração para o gmail:

/etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:465

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=marvin

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=NO

UseTLS=YES

AuthUser=????@gmail.com

AuthPass=????

Fábio Fabris fabiofabris
Hits: 9.417 Categoria: Shell Script Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Script para rastrear os pacotes dos correios que você está esperando. Assim que o pacote mudar de estado ou chegar, um email é enviado para o usuário.

O email deve estar devidamente configurado.

Um exemplo de configuração para o gmail:

/etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:465

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=marvin

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=NO

UseTLS=YES

AuthUser=????@gmail.com

AuthPass=????

Download correios.sh Enviar nova versão

Versões atualizadas deste script

Esconder código-fonte

#!/bin/bash

URL='http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&P_TIPO=001&P_COD_UNI='
PATHTMP="/tmp"

function getPage {
    wget -nv -t 10 $2 -O $1.html >>$PATHTMP/$CODE.log 2>>$PATHTMP/$CODE.log
    html2text -nobs $1.html > $1.out
}

function usage {
    cat << EOF
    uso: $0 -c [CODIGO DE RASTREAMENTO] -e [EMAIL] -i [INTERVALO] -b
   -c O código de rastreamento dado pelos correios
   -e O email para enviar as atualizações (o mail deve estar configurado)
   -i intervalo entre checagens em segundos (padrão: 1 hora)
   -b aviso sonoro no caso de modificação
EOF
}

function checkOpt {
    eval R='$'$1
    if test -z '$'$1
    then
   echo $2
   read -e $1  
    fi
}

function beepAux {
    if ! [ -z $BEEP ]
    then
   beep
    fi
}

while getopts "c:e:i:bh" OPTION
do
    case $OPTION in
   c)
       CODE=$OPTARG;;
   e)
       EMAIL=$OPTARG;;
   i)
       POLLTIME=$OPTARG;;
   b)
       BEEP=beep;;
   h)
       usage
       exit;;
   ?)
       usage
       exit;;
    esac
done

checkOpt CODE "Entre com o código de ratreamento do produto"
checkOpt EMAIL "Entre com o email que deve ser avisado"
checkOpt POLLTIME "Entre com o intervalo de checagens"

beepAux

if [ -e $PATHTMP/${CODE}"base.out" ]
then
    echo "arquivo de referencia existe"
else
    echo "baixando arquivo de referencia"
    getPage $PATHTMP/${CODE}"base"  $URL$CODE
fi

#echo | mail $EMAIL -s "\"Quando ' $CODE ' chegar te aviso\""

while [ 1 ];
do
    date
    date >> $PATHTMP/$CODE.log
    getPage $PATHTMP/${CODE}"tmp"  $URL$CODE
    if cmp -s $PATHTMP/${CODE}"base.out" $PATHTMP/${CODE}"tmp.out" >> $PATHTMP/$CODE.log
    then
   echo 'Sem mudança'
    else
   echo 'Houve mudança'
   echo '***** Houve mudança *****' >> $PATHTMP/$CODE.log
   beepAux
   if fgrep -q Entregue $PATHTMP/${CODE}"base.out"
   then
       mail $EMAIL -s '"Chegou o Pacote"' <$PATHTMP/${CODE}"tmp.out"
       echo "chegou o pacote"
       exit
   else
       mail $EMAIL -s '"Mudança de Estado"' <$PATHTMP/${CODE}"tmp.out"
       getPage $PATHTMP/${CODE}"base"  $URL$CODE
   fi
    fi
    sleep $POLLTIME
done

multiinstall

exenow - Habilitando suporte a executaveis windows no kernel do linux

Avisar quando partição estiver 90% ocupada

Monitorando acessos on-line em log do squid com autenticação.

shieldscript - Script para defesa básica do seu GNU/Linux

#1 Comentário enviado por arthurd2 em 19/01/2010 - 10:58h
Otima idéia!
Ja estou usando!

Porem la vai umas dicas:
- Colocas os pacotes necessários para rodar (Ex. ssmtp)
- Se o script é executado sem argumentos, ele não cai no 'Usage'.
- O intervalo padrão de 1 hora não esta sendo aplicado.
#2 Comentário enviado por fabiofabris em 19/01/2010 - 12:10h
Você tem razão artur!
Uma versão atualizada do script com as modificações que você propôs e outras melhorias está em:

http://www.inf.ufes.br/~ffabris/correios.sh

ao mesmo tempo submeti uma versão para o "viva o linux" que está aguardando aceitação. em breve estará disponível.

obrigado pelos comentários


#3 Comentário enviado por m4rc310 em 19/01/2010 - 14:22h
Muito bom! Mer serviu como uma luva! Parabéns. Já estou usando.

Contribuir com comentário

Entre na sua conta para comentar.