Plugin Mail Connection reset
18/02/2014 18:10
Estou com um problema que não deve ser difícil de resolver mas até o momento minhas buscas não foram felizes.
Utilizo o plugin Mail para enviar e-mails, configurei e testei o envio, tudo ok. Só que quando vou enviar um 2° e-mail logo após ja ter enviado um gera uma java.net.SocketException. Aguardando alguns minutos e tentando novamente o e-mail é enviado.
Alguém sabe por que e como evitar?
->> 196 | read in java.net.SocketInputStream
| 122 | read in ''
| 503 | configureSSLSocket in com.sun.mail.util.SocketFetcher
| 234 | getSocket in ''
| 1672 | openServer . . . . in com.sun.mail.smtp.SMTPTransport
| 525 | protocolConnect in ''
| 291 | connect . . . . . in javax.mail.Service
| 104 | sendMessage in grails.plugin.mail.MailMessageBuilder
| 41 | sendMail . . . . . in grails.plugin.mail.MailService
| 115 | $tt__save in com.smartbiz.commercial.purchasing.PurchaseOrderController$$EOWF0lH8
| 200 | doFilter . . . . . in grails.plugin.cache.web.filter.PageFragmentCachingFilter
| 53 | doFilter . . . . . in grails.plugin.multitenant.core.servlet.CurrentTenantServletFilter
| 49 | doFilter in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
| 82 | doFilter . . . . . in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
| 615 | run . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
Tags: Mail Connection Reset
Não seria limitações de infra? Ja deu uma olhada nas configurações e regras do seu smtp server?
De qualquer forma, amanhã posto aqui minhas config de email e você bate com as suas.
Não sei Rony,
As configurações estão assim (config.groovy)
username = "meuemail@email.com"
06/03/2014 13:07
Não sei se irá te ajudar, mas vai aí minhas configurações:
Esta o domínio da minha empresa, mas é por que usamos Google APPS.
username = "novasenha@mastersistemas.com.br"
password = "#########"
def enviaSenha = {
//enviado por e-mail a nova senha
from "novasenha@mastersistemas.com.br"
subject "Recuperação de dados de acesso"
text "Mensagem ******* "
to usuario.email
Não deixe de ler a política de envio de e-mais do google, acho que não é possível disparar vários emails seguidos( Política anti-spam )
07/03/2014 22:21
30/05/2014 19:12
connection reset normalmente ocorre quando você se conecta com o servidor e este para de aceitar suas conexões. Não me parece ser um problema do plugin, mas sim da própria conexão com o seu servidor, ou seja, o problema muito provávelmente está nos eu servidor que, por alguma razão, não está te permitindo enviar e-mails com uma frequência maior.
Se for um serviço pago, verifique se há alguma restrição de acesso: isto é bastante comum. Há serviços que te impedem mandar um número x de e-mails, por exemplo.
Outro ponto: tente uma outra configuração: com outro servidor de e-mail e verifique se o problema persiste.
Olá Henrique, obrigado pela resposta.
Eu suspeitei dessa questão do limite de envio, e cheguei a implementar um sistema de reenvio (uma tread separada que a cada x minutos envia a 1° requisição de envio de uma lista de requisições) estou esperando até 5min para realizar a próxima tentativa de envio e mesmo assim é muito comum não enviar.
Acho que se fosse este o caso eu esperar algo como 1min ja seria suficiente, não? tendo em vista que pelo browser eu consigo enviar com um intervalo bem pequeno...
Outro ponto é que se eu tentar enviar o e-mail e der o connection reset, eu encerro a aplicação e executo novamente (isso leva uns 60seg) e tento enviar o e-mail, e ele envia. Observei que sempre a 1° tentativa é bem sucedida, as seguintes é que geram o erro, mesmo eu esperando mais de 5min após o envio bem sucedido.
30/05/2014 22:47
isto confirma minha suspeita: 90% de chance de ser algum controle no seu servidor de e-mail.
Você pode, se for apenas para enviar e-mail, usar alguma solução como o sendmail também: ele pode ser instalado no seu próprio servidor.
Um serviço que tenho usado e gostado bastante se chama Mandrill App http://www.mandrillapp.com
Ele fornece um servidor SMTP que, apesar de limitado, se vocÊ não for enviar muitos e-mails acaba te atendendo. É o que o Grails Brasil usa atualmente inclusive.
Experimente e depois me diga se sua situação melhorou, ok?
utilizo o serviço do Google para enviar emails, sabe se ele tem essa limitação?
Tentei utilizar o Mandrill App e deu um erro de falha de autenticação apesar de eu ter conferido várias vezes e o usuário e a senha estão corretos, também conferi a porta, o host e está tudo ok. Tem como passar um exemplo da configuração pra eu ver o que estou fazendo de errado?
host = "smtp.mandrillapp.com"
username = "meuemail@mail.com"
sim: o serviço do Google tem esta limitação e, ainda pior: eles podem (e provávelmente vão) congelar sua conta caso descubram que você está enviando e-mails em massa por ele.
No caso eu não uso o plugin mail (nunca gostei dele), uso ao invés uma biblioteca da Apache Commons chamada "Commons Email". Já escrevi sobre isto no meu blog. Depois da uma olhada: http://www.itexto.net/devkico/?p=461
Valeu Henrique, obrigado pela ajuda vou tentar com o mandril.
03/06/2014 13:12
Funcionou perfeitamente Henrique, obrigado!
Consegui com o Mandril também, cometi um erro que pode ser comum.
Coloquei como senha na configuração do plugin de email, a mesma senha que coloquei na criação da conta no Mandrill, quando deveria ter colocado uma chave (API key) gerada pelo próprio Mandrill.
Henrique, tenho que utilizar o plugin de email mesmo porque utilizo o plugin de email de confirmação que depende dele, mas muito obrigado pela dica, você matou a charada, realmente era o serviço de emails do Google que negava minha conexão.