Configure o postfix para usar a retransmissão SMTP do Google Apps em uma instância do Google Compute Engine

7

Quais são as etapas para configurar o postfix como retransmissão SMTP que usa o retransmissão SMTP do Google Apps. Há vários tutoriais na Web que explicam como usar o smtp.gmail.com gateway com a autenticação SASL, mas não consegui encontrar uma configuração de trabalho para o reencaminhamento smtp-relay.google.com do Google Apps, conforme descrito aqui , especialmente um que é específico do Google Compute.

Configurei o serviço de redirecionamento SMTP com "Somente endereços em meus domínios" conforme descrito aqui e verifiquei que o IP é de fato o que eu me conecto.

Eu sei que o Google compute não permite a porta 25 como porta de saída, conforme descrito aqui .

Estou usando o debian linux ou um derivado do Debian.

Eu configurei o postfix conforme detalhado nos docs , mas tudo que consigo no mail.log é:

postfix/smtp[720]: send attr reason = host smtp-relay.gmail.com[66.102.1.28] said: 
550-5.7.1 Invalid credentials for relay [104.155.78.1]. The IP address you've
550-5.7.1 registered in Google Apps SMTP Relay service doesn't match domain of 
550-5.7.1 the accountthis email is being sent from. If you are trying to relay 
550-5.7.1 mail from a domain that isn't registered under your Googles Apps 
550-5.7.1 account or has empty envelope-from, you must configure your mail 
550-5.7.1 server either to use SMTP AUTH to identify the sending domain or to 
550-5.7.1 present one of your domain names in the HELO or EHLO command. For 
550-5.7.1 more information, please visit 
550 5.7.1  https://support.google.com/a/answer/6140680#invalidcred kg2sm505213wjb.4 - gsmtp (in reply to MAIL FROM command)
    
por konqi 25.02.2016 / 17:38

2 respostas

6

Instale o postfix com apt-get install postfix . Quando perguntado selecione "sistema de satélite" ou a opção com smarthost. Aceite os padrões de todo o resto por enquanto.

Edite seu main.cf de acordo com o seguinte arquivo:

/etc/postfix/main.cf

# a file which should contain the google apps domain
myorigin = /etc/mailname
# if your google apps domain is in mydestination, remove it, or postfix will attempt to deliver your mail locally
mydestination = ...., localhost

# Google Apps Relay SMTP, must use Port 587 because, 25 is blocked
relayhost = [smtp-relay.gmail.com]:587

# Force ehlo behavior
smtp_always_send_ehlo = yes
smtp_helo_name = <yourappsdomainhere>

# Enable TLS
smtp_use_tls=yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

# limit smtp to loopback interface & compute engine doesn't support ipv6
inet_interfaces = loopback-only
inet_protocols = ipv4

# These lines can be used, if the result is not as expected
# debug_peer_list = smtp-relay.gmail.com
# debug_peer_level = 2

Reinicie o postfix com service postfix restart . Tudo deve ser bom.

Isso pode não ser a mais limpa de todas as soluções, mas funciona para mim.

    
por 25.02.2016 / 17:38
1

Eu pesquisei na internet por alguns dias para encontrar a solução que você e eu estávamos procurando.

Certifique-se de ter definido as configurações de retransmissão SMTP em Aplicativos > Google Apps > Gmail > Configurações avançadas na sua conta do Google Apps da seguinte forma:

Certifique-sedeterinstaladoosmódulospostfixelibsasl2.

sudoapt-getupdatesudoapt-getinstallpostfixsudoapt-getinstalllibsasl2-modules

ConfiguraçãodoPostfix

DuranteaconfiguraçãodoPostfix,definaasseguintesconfigurações:

  • Tipogeraldeconfiguraçãodecorreio:Internetcomsmarthost.
  • Nomedoemail:example.com(nomededomíniototalmentequalificado)
  • Hostderetransmissão:[smtp.gmail.com]:587

Seuarquivo/etc/postfix/main.cfdeveficarassim:

myhostname=yourdomain.comsmtpd_banner=$myhostnameESMTP$mail_name(Debian/GNU)biff=no#appending.domainistheMUA'sjob.append_dot_mydomain=no#Uncommentthenextlinetogenerate"delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

myorigin = /etc/mailname
mydestination = yourdomain.com

relayhost = [smtp.gmail.com]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

# Use IPv4 protocol
inet_protocols = ipv4

# enable SASL authentication 
smtp_sasl_auth_enable = yes

# disallow methods that allow anonymous authentication. 
smtp_sasl_security_options = noanonymous

# where to find sasl_passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd

# Enable STARTTLS encryption 
smtp_use_tls = yes

# where to find CA certificates
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Crie um arquivo /etc/postfix/sasl/passwd e adicione seu nome de usuário e senha do Google Apps da seguinte forma:

[smtp.gmail.com]:587 [email protected]:yourpassword

Agora crie o arquivo de hash db para o Postfix, executando o comando postmap:

sudo postmap /etc/postfix/sasl/passwd

Proteja seus arquivos de senha e banco de dados de hash para que somente o root possa lê-los e escrevê-los:

sudo chown root:root /etc/postfix/sasl/passwd /etc/postfix/sasl/passwd.db
sudo chmod 0600 /etc/postfix/sasl/passwd /etc/postfix/sasl/passwd.db

Reinicie o Postfix por:

sudo /etc/init.d/postfix restart

Se você instalou o mailutils, poderá testar o envio de e-mails:

echo "body of your email" | mail -s "This is a Subject" -a "From: [email protected]" [email protected]

Se o seu e-mail não for recebido, verifique o seu arquivo mail.log em busca de mensagens de erro:

sudo tail -f /var/log/mail.log

Eu escrevi um artigo mais detalhado: link

    
por 31.08.2016 / 10:50