Enviando e-mail pelo Gmail e com o Sendmail
Índice
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