Enviar e-mails com o POSTFIX no Ubuntu

Iniciado por rafacorre, 26 de Abril de 2016, 17:27

tópico anterior - próximo tópico

rafacorre

Segui o tutorial da Digital Ocean (este servidor está hospedado com eles).
https://www.digitalocean.com/community/tutorials/how-to-install-and-setup-postfix-on-ubuntu-14-04

sudo apt-get update
sudo apt-get install postfix

sudo nano /etc/postfix/main.cf

Adicionei os outros alias no arquivo:

virtual_alias_maps = hash:/etc/postfix/virtual
sudo nano /etc/postfix/virtual

sudo postmap /etc/postfix/virtual
sudo service postfix restart

A instalação foi feita, porém os e-mails não são enviados, já configurei o MX no painel, as regras do firewall e mesmo assim não funcionou, como essa é a primeira vez que eu configuro um serviço de e-mail eu gostaria de uma ajuda da comunidade para resolver este problema.

Essa é a configuração do meu Postfix:

postconf -n
alias_database = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 1073741824
message_size_limit = 10485760
mydestination = money, localhost.localdomain, localhost
myhostname = money
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_maps = hash:/etc/postfix/virtual

O comando host -t mx seudominio.com.br retornou o mx configurado, acredito que este não seja o problema.

Essa é configuração do iptables:

iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-apache
-N fail2ban-apache-overflows
-N fail2ban-mysqld-auth
-N fail2ban-php-url-fopen
-N fail2ban-postfix
-N fail2ban-proftpd
-N fail2ban-ssh
-N fail2ban-ssh-ddos
-A INPUT -p tcp -m multiport --dports 3306 -j fail2ban-mysqld-auth
-A INPUT -p tcp -m multiport --dports 25,465,587 -j fail2ban-postfix
-A INPUT -p tcp -m multiport --dports 21,20,990,989 -j fail2ban-proftpd
-A INPUT -p tcp -m multiport --dports 80,443 -j fail2ban-php-url-fopen
-A INPUT -p tcp -m multiport --dports 80,443 -j fail2ban-apache-overflows
-A INPUT -p tcp -m multiport --dports 80,443 -j fail2ban-apache
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh-ddos
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A fail2ban-apache -j RETURN
-A fail2ban-apache-overflows -j RETURN
-A fail2ban-mysqld-auth -j RETURN
-A fail2ban-php-url-fopen -j RETURN
-A fail2ban-postfix -j RETURN
-A fail2ban-proftpd -j RETURN
-A fail2ban-ssh -j RETURN
-A fail2ban-ssh-ddos -j RETURN


fail2ban-client status postfix
Status for the jail: postfix
|- filter
|  |- File list:  /var/log/mail.log
|  |- Currently failed: 0
|  `- Total failed: 0
`- action
   |- Currently banned: 0
   |  `- IP list:
   `- Total banned: 0


Testei as portas:

nmap -sS -O 127.0.0.1

Starting Nmap 6.40 ( http://nmap.org ) at 2016-04-26 17:05 BRT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
25/tcp   open  smtp
80/tcp   open  http
587/tcp  open  submission
2607/tcp open  connection
3306/tcp open  mysql

netstat -anp | grep :25 | grep LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      21201/sendmail: MTA

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.14.4/8.14.4/Debian-4.1ubuntu1; Tue, 26 Apr 2016 17:20:22 -0300; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]

Pensei que o problema fosse este sendmail que aparece no comando acima, porém ao executar o comando apt-get purge sendmail*

Ele não removeu nada pois o sendmail não havia sido instalado.

Então eu fui ver se o problema era no postfix:

Quando eu executo: postfix status
postfix/postfix-script: the Postfix mail system is not running

service postfix restart
* Stopping Postfix Mail Transport Agent postfix                         [ OK ]
* Starting Postfix Mail Transport Agent postfix                         [ OK ]

postfix start
postfix/postfix-script: starting the Postfix mail system
postfix/postfix-script: fatal: mail system startup failed

Tentei enviar e-mail com o comando:
mail -u usuário -s "Assunto" destino@dominio.com.br < ./texto_email.txt


O arquivo de log esta vazio e nada funcionou até o momento.

zekkerj

Olá rafacorre,

Me parece que você está com algum erro na configuração do postfix, por isso ele diz que falha na inicialização.
Observei que vc está com a configuração de TLS ativa ("smtpd_use_tls = yes"), embora esteja usando os certificados de exemplo ("snakeoil"). Seria bom vc confirmar essa configuração, pq me parece um bom motivo pra não iniciar.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D