Enviando e-mail pelo Gmail e com o Sendmail

De BrapciWiki
Ir para navegação Ir para pesquisar

Liberar acesso

Sua conta no Gmail pode estar desabilitada para permitir aplicativos menos seguros. Para solucionar esse problema acesse o Gmail pelo seu navegador e em seguida abra o link: https://myaccount.google.com/lesssecureapps. Nessa página você irá habilitar a opção de aplicativos menos seguros. Ao ativar a opção irá ficar com o nome ATIVADA e o botão ficará azul como na imagem.

Instalando

apt-get install sendmail mailutils sendmail-bin 

Algumas distribuíções de Linux usam:

apt-get install ssmtp

Criando um arquivo para autenticação do Gmail

mkdir -m 700 /etc/mail/
mkdir -m 700 /etc/mail/authinfo/
cd /etc/mail/authinfo/

Crie o arquivo /etc/mail/authinfo/gmail-auth com o conteúdo:

nano /etc/mail/authinfo/gmail-auth

Com o conteúdo, não esqueça de ajustar o nome e a senha

AuthInfo: "U:root" "I:YOUR GMAIL EMAIL ADDRESS" "P:YOUR PASSWORD"
AuthInfo: "U:root" "I:brapcici@gmail.com" "P:YOUR PASSWORD"

Crie um Bash Map do conteúdo

makemap hash gmail-auth < gmail-auth

Verifique se o domínio válido

/etc/hostname

ex: brapci.inf.br

e arquivo /etc/hosts

127.0.0.1 localhost
#127.0.1.1 brapci2
143.54.114.150 brapci.inf.br
64.233.186.109 smtp.gmail.com

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Configurando o SSMTP

Edite o arquivo

nano /etc/ssmtp/ssmtp.conf

com os dados:

root=seu_meail@gmail.com
mailhub=smtp.gmail.com:465
FromLineOverride=YES
AuthUser=seu_email@gmail.com
AuthPass=senha_conta
UseTLS=YES

Reinicialize o serviço

service sendmail restart

Configurar via comando CURL

O primeiro passo é verificar se a variável SystemEmail contém O MESMO email que a conta utilizada para o envio de emails. Para confirmar a conta do email, utilize:

  curl $SERVER_URL/api/admin/settings/:SystemEmail

Caso a conta não seja a mesma, você deve utilizar o comando abaixo para setar esta variável:

  curl -X PUT -d 'Dataverse <webmaster@dominio.com.br>' $SERVER_URL/api/admin/settings/:SystemEmail

Uma vez confirmada, você pode criar a configuração de email de duas formas.

1) utilizando o comando abaixo:

 $PAYARA/bin/asadmin delete-javamail-resource mail/notifyMailSession
 $PAYARA/bin/asadmin create-javamail-resource --mailhost smtp\.gmail\.com --mailuser app\.email\.dvn@gmail\.com --fromaddress app\.email\.dvn@gmail\.com --property mail.smtp.auth=true:mail.smtp.password=$PASSWORD:mail.smtp.port=465:mail.smtp.socketFactory.port=465:mail.smtp.socketFactory.fallback=false:mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory mail/notifyMailSession

Configurar via XML do domain

Você deve editar o arquivo de configuração do domínio localizado em $PAYARA/glassfish/domains/domain1/config/domain.xml

Servidores que utilizam TLS

   <mail-resource auth="true" host="smtp.provedor.com" from="webmaster@domain.com.br" user="webmaster@domain.com.br" jndi-name="mail/notifyMailSession">
     <property name="mail.smtp.port" value="587"></property>
     <property name="mail.smtp.password" value="xxxxx"></property>
     <property name="mail.smtp.auth" value="true"></property>
   </mail-resource>

Google/GMail

   <mail-resource auth="true" host="smtp.gmail.com" from="app.email.dvn@gmail.com" user="app.email.dvn@gmail.com" jndi-name="mail/notifyMailSession">
     <property name="mail.smtp.port" value="465"></property>
     <property name="mail.smtp.password" value="xxxxx"></property>
     <property name="mail.smtp.auth" value="true"></property>
     <property name="mail.smtp.socketFactory.port" value="465"></property>
     <property name="mail.smtp.socketFactory.fallback" value="false"></property>
     <property name="mail.smtp.socketFactory.class" value="javax.net.ssl.SSLSocketFactory"></property>
   </mail-resource>

Testar o envio

echo "Isto é um e-mail de teste" | mail -s "Assunto Teste 2" renefgj@gmail.com

ou via SMTP

echo "E-Mail using the command-line" | ssmtp renefgj@gmail.com

Erros

cannot send message: Process exited with a non-zero status

Informações para checar

  • /etc/hosts.allow
  • /etc/mail/trusted-users
  • /etc/mail/local-host-names