Envio de email através de uma instância EC2 da Amazon

Olá,

Bom dia!

Estou para colocar uma aplicação em produção e estou tomando um baita pau para fazer funcionar o envio de email.

No meu ambiente de desenvolvimento (notebook local) funciona perfeito o envio de email, mas quando subo para uma EC2 da Amazon, não vai nem que a vaca tussa.

Parece que precisa configurar um serviço chamado SES, até tentei, mas não consegui.

Com certeza alguém aqui já passou por isso e conseguiu, por isso peço gentilmente se poderia me contar o caminho das pedras?

Desde já agradeço a atenção.

Abraço,

Boa tarde, uso o EC2 e não utilizo o SES para envios, o que acontece quando vai enviar ?
subiu uma imagem padrão do EC2 ? verificou se tem rodando sendmail ou qmail …

Olá Flávio,

Obrigado pela ajuda.

Minha instância EC2 roda em Windows Server 2012.

No meu ambiente de desenvolvimento uso um MacOSX e para o envio do email uso a função sc_mail_send.

Perceba que esta máquina EC2 usa o smtp de uma outra máquina, mas por algum motivo não consigo sair para conectar o smtp. Se houver uma forma de eu enviar com um serviço local de smtp seria melhor.

Veja abaixo, o meu código:

$v_email = “ricardo@combobox.com.br”;
$v_mensagem = “Voce acaba de receber uma solicitação de cadastro no sistema COMBOBOX.
Para autorizar, entre como administrador, clique em Usuarios -> Usuarios para ativa-lo.”;

$mail_smtp_server = ‘smtp.combobox.com.br’; // SMTP server name or IP address
$mail_smtp_user = ‘XXXXXXXXXXX’; // SMTP user name
$mail_smtp_pass = ‘XXXXXXXXXXX’; // SMTP password
$mail_from = ‘combobox.com ricardo@combobox.com.br’; // From email
$mail_to = $v_email; // To email
$mail_subject = ‘COMBOBOX - Solicitacao de cadastro no Site’; // Message subject
$mail_message = $v_mensagem; // Message body
$mail_format = ‘H’; // Message format: (T)ext or (H)tml

// Send email";
$envio = sc_mail_send($mail_smtp_server, $mail_smtp_user, $mail_smtp_pass, $mail_from, $mail_to, $mail_subject, $mail_message, $mail_format, “”, “”,587, “”);

if($envio){
sc_redir(“msg.php”, v_msg=“

Você se inscreveu com sucesso. Aguarde liberação!

”; v_voltar="…/login/login.php");
}else{
sc_error_message(“A mensagem não pode ser enviada”);
sc_error_exit();
}

Bom saber que é possível o envio de email sem o uso do SES.

Poderia me ajudar com o SendMail ou QMail?

se ta na outra maquina, pode ser firewall, já verificou os grupos de segurança ?
se for usar local, teoricamente seria melhor
tem algum motivo especial de usar uma EC2 com windows ?

Prezado Flávio,

Sim, também acho que seria melhor usar local, o problema é a dificuldade que estou enfrentando, nem o serviço de smtp server no windows eu consigo instalar, parece que é bloqueado pela Amazon.

O motivo de usar uma EC2 em Windows é que estou usando uma conta gratuita na Amazon e já tenho uma EC2 em Linux com Tomcat que hospeda uma app, por isso que precisei montar uma EC2 em Windows para rodar o Apache com páginas PHP, assim continuo no gratuito.

Veja só, instalei o sendmail para Windows, usando o seguinte tutorial:
http://websistent.com/using-sendmail-on-windows/

E testando a página mail.php não dá erro, mas também não envia email.

O que será que estou fazendo de errado?

Obrigado.

Abraço,

Flávio,

Olhando o log do SendMail vi que está dando time-out

Outra coisa, desliguei o firewall do windows.

Que difícil né?

Valeu!

verifica o firewall do grupo de segurança que fez no EC2

Flávio,

Lá no Security Group há o inbound e outbound.

No outbound já está configurado para All Trafic, qualquer IP.

Seria isto que vc mencionou, certo?

Abraço,

sim verifica no grupo, pois se tem dois tem que ter out liberado nos dois servidores, e in para a porta de smtp que ta usando, em falar nisso ta usando que porta ?

Flávio,

O meu servidor com a aplicação PHP está rodando numa EC2 e vou chama-lo de servidor apache_windows e o servidor smtp que quero usar está numa hospedagem da Kinghost e lá tenho os meus email e a página principal do site www.combobox.com.br, o qual vou chama-lo de servidor_email.

A comunicação será entre o apache_windows e o servidor_email, então preciso configurar somente o outbound para All Trafic, o qual já está para se comunicar com o servidor_email, certo?

Não há necessidade de abrir alguma porta no inbound do apache_windows, correto?

Agora se você disser que isso seria muito mais simples num Linux, acho que posso rever a minha decisão.

Obrigado novamente.

Abraço,

O que falou ta correto, outbound aberto para chegar no seu smtp, ta usando porta 587 para o smtp ?

Sim, estou usando porta 587.

Quando você foi configurar o envio de email sofreu deste jeito :frowning:

Abraço,

seu servidor tem reverso válido para o dominio ?
tem algum outro smtp para fazer o teste ?

O que seria este reverso válido?

Uma outra possibilidade seria testar com o gmail. Vou testar com ele.

Abraço,