Configure GMAIL in grails mail plugin
I am using acegi (0.5.3), mail (1.0-SNAPSHOT) plugin in GRAILS (1.3.6)
For Mail plugin refer here, http://grails.org/plugin/mail
Application was configured to use the settings from SecurityConfig.groovy
The code looks as follows.
My requirement is to take the configuration specified in Config.groovy.
After searching , finally I got a solution for the requirement.
I referred this link,
http://stackoverflow.com/questions/3664032/grails-mail-plugin-not-working
My Config.groovy looks as follows.
I modified the SecurityConfig.groovy as follows.
I am using acegi (0.5.3), mail (1.0-SNAPSHOT) plugin in GRAILS (1.3.6)
For Mail plugin refer here, http://grails.org/plugin/mail
Application was configured to use the settings from SecurityConfig.groovy
The code looks as follows.
import in.cdac.chn.cloudportal.Authentication.User
security {
// see DefaultSecurityConfig.groovy for all settable/overridable properties
def authenticateService
active = true
loginUserDomainClass = "in.cdac.chn.cloudportal.Authentication.User"
authorityDomainClass = "in.cdac.chn.cloudportal.Authentication.Role"
requestMapClass = "in.cdac.chn.cloudportal.Authentication.Requestmap"
defaultRole='ROLE_USER'
algorithm = "MD5"
cacheUsers = false
useMail=true
mailHost='smtp.domain.in'
mailUsername=null
mailPassword=null
mailProtocol='smtp'
mailFrom=" Cloud Portal<Somebody@domain.com>"
mailPort=25
javaMailProperties=null
AdminMail= Cloud Portal<Somebody@domain.com>"
useSecurityEventListener = true
onInteractiveAuthenticationSuccessEvent = { e, appCtx ->
//def principal =
User.withTransaction {
def user = User.findById(appCtx.authenticateService.userDomain().id)
user.attach()
user.lastLoggedIn=new java.util.Date().getTime()
if(user.save()){
}
else{
}
}
}
}
My requirement is to take the configuration specified in Config.groovy.
After searching , finally I got a solution for the requirement.
I referred this link,
http://stackoverflow.com/questions/3664032/grails-mail-plugin-not-working
My Config.groovy looks as follows.
grails {
mail {
host = "smtp.gmail.com"
port = 465
username = "some@gmail.com"
password = "password"
mailProtocol="smtp"
props = ["mail.smtp.auth":"true",
"mail.smtp.socketFactory.port":"465",
"mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback":"false"]
}
}
I modified the SecurityConfig.groovy as follows.
import in.cdac.chn.cloudportal.Authentication.UserThat is it!, It worked. I spent nearly 2 hours for this (: ( )
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
security {
// see DefaultSecurityConfig.groovy for all settable/overridable properties
def authenticateService
active = true
loginUserDomainClass = "in.cdac.chn.cloudportal.Authentication.User"
authorityDomainClass = "in.cdac.chn.cloudportal.Authentication.Role"
requestMapClass = "in.cdac.chn.cloudportal.Authentication.Requestmap"
defaultRole='ROLE_USER'
algorithm = "MD5"
cacheUsers = false
useMail=true
println "------------------------------------------------------------------"
println "Time of Deployment of Portal -> " + new java.util.Date().toString()
println "-----------------------------------------------------------------"
mailHost=CH.config.grails.mail.host
println "MailHost -> ${mailHost}"
mailUsername=CH.config.grails.mail.username
println "mailUsername-> ${mailUsername}"
mailPassword=CH.config.grails.mail.password
mailProtocol=CH.config.grails.mail.mailProtocol
println "mailProtocol-> ${mailProtocol}"
mailFrom=CH.config.grails.mail.username
println "mailFrom-> ${mailFrom}"
mailPort=CH.config.grails.mail.port
println "mailPort-> ${mailPort}"
javaMailProperties=CH.config.grails.mail.props
println "javaMailProperties-> ${javaMailProperties}"
AdminMail=CH.config.grails.mail.default.from
println "AdminMail-> ${AdminMail}"
println "-----------------------------------------------------------------"
useSecurityEventListener = true
onInteractiveAuthenticationSuccessEvent = { e, appCtx ->
//def principal =
User.withTransaction {
def user = User.findById(appCtx.authenticateService.userDomain().id)
user.attach()
user.lastLoggedIn=new java.util.Date().getTime()
if(user.save()){
}
else{
}
}
}
}
No comments:
Post a Comment