Como configurar o sendmail para enviar e-mail via GMail (smtp.gmail.com), usando a porta 465 ou 587?

6

Eu configurei o sendmail para enviar e-mails através da minha conta do GMail (Gmail), ou seja, via smtp.gmail.com , editando /etc/mail/sendmail.mc e regenerando o sendmail.cf:

-dnl define('SMART_HOST','smtp.your.provider')
+define('SMART_HOST','[smtp.gmail.com]')

-dnl define('confAUTH_OPTIONS', 'A p')dnl
+define('confAUTH_OPTIONS', 'A p')dnl

-dnl TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
-dnl define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

 FEATURE('no_default_msa','dnl')dnl
 FEATURE('smrsh','/usr/sbin/smrsh')dnl
+FEATURE('authinfo','hash -o /etc/mail/authinfo.db')dnl
 FEATURE('mailertable','hash -o /etc/mail/mailertable.db')dnl
 FEATURE('virtusertable','hash -o /etc/mail/virtusertable.db')dnl

-dnl MASQUERADE_AS('mydomain.com')dnl
+MASQUERADE_AS('gmail.com')dnl

Acima está o diff abreviado das minhas alterações para o sendmail.mc.

Eu criei /etc/mail/authinfo com minhas credenciais (nome de usuário e senha para minha conta do GMail; redigida):

AuthInfo:smtp.gmail.com "U:[email protected]" "P:password" "M:PLAIN"
AuthInfo: "U:[email protected]" "P:password" "M:PLAIN"

Mas essa configuração faz com que o 'sendmail' envie e-mails pela porta SMTP padrão 25 usando smtp.gmail.com ... mas ultimamente meu ISP adicionou uma regra de firewall que bloqueia todo o tráfego para a porta (insegura) 25.

Como configurar o sendmail para enviar e-mails através da porta 465 ou 587 (utilizando o STARTTLS ) ?

    
por Jakub Narębski 02.12.2009 / 13:51

1 resposta

7

Adicione o seguinte ao seu sendmail.mc:

define('RELAY_MAILER_ARGS', 'TCP $h 587')
define('ESMTP_MAILER_ARGS’, 'TCP $h 587′)

Isso deve fazer com que seu e-mail de saída seja enviado pelo Sendmail na porta 587.

Você também precisará configurar o sendmail para fazer o TLS. É um pouco além do escopo da sua pergunta, mas você pode encontrar muitos guias decentes sobre como fazer isso com o Google se não estiver familiarizado.

    
por 02.12.2009 / 13:57