dimail 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. #!/usr/bin/env bash
  2. #-----HEADER------------------------------------------------------------------#
  3. #AUTOR
  4. # Jefferson Rocha <lrcjefferson@gmail.com>
  5. #
  6. #PROGRAMA
  7. # diMail
  8. #
  9. #DESCRIÇÃO
  10. # Programa que envia e-mail com um front do dialog! A anexação da configuração
  11. # do Mutt é feito atraves do próprio fonte do programa, preecha #corretamente
  12. # e comece a utilizar!
  13. #
  14. #LICENÇA
  15. # diMail - An Automated packaging tool for Slackware Linux
  16. # Copyright (C) 2018 Jefferson Rocha
  17. #
  18. # This program is free software; you can redistribute it and/or modify
  19. # it under the terms of the GNU General Public License as published by
  20. # the Free Software Foundation; either version 2 of the License, or
  21. # (at your option) any later version.
  22. #
  23. # This program is distributed in the hope that it will be useful,
  24. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  25. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  26. # GNU General Public License for more details.
  27. #
  28. # You should have received a copy of the GNU General Public License
  29. # along with this program; if not, write to the Free Software
  30. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  31. #
  32. #VERSÃO
  33. # 1.0
  34. #
  35. #-----------------------------------------------------------------------------#
  36. #---CONFIGURACOES--------#
  37. seu_nome="nome"
  38. seu_email="user@gmail.com"
  39. seu_usuario="user" # exemplo lrcjefferson de lrcjefferson@gmail.com
  40. sua_senha="senha"
  41. #------------------------#
  42. #----NÃO MEXER DAQUI PARA BAIXO!----#
  43. #---VARS-----------------#
  44. mail_arq="/tmp/mail.txt"
  45. mutt_conf="/tmp/.conf"
  46. #------------------------#
  47. #---FUNÇÕES--------------#
  48. # Envia as configurações do mutt para um
  49. # arquivo temporario, assim o mutt consegue
  50. # enviar o e-mail com as configurações desejadas.
  51. conf_muttrc(){
  52. cat > /tmp/.conf <<END
  53. set from="$seu_email"
  54. set realname="$seu_nome"
  55. set imap_user="$seu_email"
  56. set imap_pass="$sua_senha"
  57. set smtp_url="smtps://${seu_usuario}@smtp.gmail.com:465/"
  58. set smtp_pass="$sua_senha"
  59. set ssl_starttls=yes
  60. set ssl_force_tls=yes
  61. END
  62. }
  63. limpa_cache(){
  64. if rm "$mutt_conf"; then
  65. if rm "$mail_arq"; then
  66. echo -e "Arquivos ${mutt_conf} e ${mail_arq}, foram apagados com sucesso."
  67. else
  68. echo -e "Não foi possivel apagar os arquivos:\n${mutt_conf} 'e' ${mail_arq}"
  69. fi
  70. fi
  71. }
  72. #------------------------#
  73. #---TESTE INICIAIS-------#
  74. # Dependencias necessárias para prosseguir (Dialog, OpenSSL, Mutt)
  75. [[ $(which dialog 2>/dev/null) ]] || { echo "Necessita do Dialog para prosseguir" ; exit 1 ;}
  76. [[ $(which openssl 2>/dev/null) ]] || { echo "Necessita do OpenSSL para prosseguir" ; exit 1 ;}
  77. [[ $(which mutt 2>/dev/null) ]] || { echo "Necessita do Mutt para prosseguir" ; exit 1 ;}
  78. # Usuário tem internet?
  79. # Se não ter bye!
  80. if ! wget -q --spider www.google.com; then
  81. dialog --infobox "Sem Internet! Conexe e retorne." 0 0
  82. exit 1
  83. fi
  84. # Se o arquivo temporario de armazenamento
  85. # do email não existir, vamos criar!
  86. [[ ! -e "$mail_arq" ]] && > "$mail_arq"
  87. #------------------------#
  88. #--Começa Aqui-----------#
  89. # Qual o Email de destino?
  90. while :; do
  91. mail_destino=$(
  92. dialog --stdout \
  93. --title "DESTINO" \
  94. --inputbox "E-MAIL do DESTINO " \
  95. 8 50
  96. )
  97. # Se entrada for nula leva esporro!
  98. if [[ -z "$mail_destino" ]]; then
  99. dialog --title "Mensagem para o Além." \
  100. --ok-label "Retornar" \
  101. --msgbox "Você vai enviar o e-mail para o além? digite um E-MAIL válido!" \
  102. 8 40
  103. else
  104. break
  105. fi
  106. done
  107. # Corpo da mensagem será escrito aqui.
  108. # e enviado para o arquivo temporario.
  109. mensagem=$(
  110. dialog --stdout \
  111. --title "Digite O Corpo da Mensagem." --backtitle "diMail" \
  112. --ok-button "Enviar" \
  113. --editbox "$mail_arq" \
  114. 0 0 > "$mail_arq"
  115. )
  116. # Chamando função para gerar arquivo temporário
  117. conf_muttrc
  118. # Vamos enviar o email?
  119. if mutt -s "Assunto" "$mail_destino" -F "/tmp/.conf" < "$mail_arq" 2> /dev/null; then
  120. dialog --title "CONCLUÍDO!" \
  121. --msgbox "E-mail enviado com sucesso!" \
  122. 6 30
  123. else
  124. dialog --infobox "Houve um erro" 0 0
  125. fi
  126. limpa_cache # Limpando arquivos temporarios!