Problemas ao usar o commons-email e gmail no tomcat
16/08/2012 17:18
Galera,
estou com um grande problema. Tentei criar um serviço de enviar email, como no Blog do Kico (http://www.itexto.net/devkico/?p=461)para quando o administrador de um sistema cadastrar um usuário, esse usuário receber uma notificaçào com o seu login e senha (parecido com o que ocorre no GrailsBrasil).Adicionei na pasta lib as dependencias commons-email. E Consegui fazer rodar localhost e tudo através de um MailService.groovy, assim:
import org.apache.commons.mail.HtmlEmail
import org.apache.commons.mail.*;
class MailService
{
static scope = "request"
boolean transactional = false
String host= "smtp.gmail.com"
String username = "bruno@gmail.com"
String password = "MinhaSenha"
String from = "bruno@gmail.com"
String name = "Administrador"
Integer port = 465
String email = null
String mensagem = null
String assunto = null
def boolean send(String subject, String msg, String to)
{
try
{
org.apache.commons.mail.HtmlEmail email = new org.apache.commons.mail.HtmlEmail()
email.setCharset("UTF-8")
email.setHostName(host)
email.addTo(to)
email.setFrom(from, name)
email.setSubject(subject)
email.setHtmlMsg(msg)
email.setSSL(true)
email.setTLS(true);
email.setSslSmtpPort(String.valueOf(port))
email.setAuthentication(username,password)
email.setSmtpPort(port)
email.send()
return true
}catch (Exception e)
{
println e
return false
}
}
}
E no create ficou assim:
def create() {
switch (request.method) {
case 'GET':
[userGuideInstance: new UserGuide(params)]
break
case 'POST':
def userGuideInstance = new UserGuide(params)
println params
if (!userGuideInstance.save(flush: true))
{
render view: 'create', model: [userGuideInstance: userGuideInstance]
return
}
mailService.send("Informações de login - ", "Informações<br />Login: ${userGuideInstance.username}<br />Senha: ${params.password}", userGuideInstance.email)
flash.message = message(code: 'default.created.message', args: [message(code: 'userGuide.label', default: 'UserGuide'), userGuideInstance.id])
redirect action: 'show', id: userGuideInstance.id
break
}
}
O problema é que quando gero o .war e faço deploy no tomcat ele não envia essa notificação :-( Vi em alguns posts que devo configurar o IMAP para usar o gmail ou ainda não usar o gmail porque ele bloqueia. Alguém já teve esse problema ou sabe como solucioná-lo?
Tags:
commons-email, enviar email gmail, simple mail grails