Groovy   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了grails 发送邮件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是大佬教程code.js-code.com 通过网络收集整理的代码片段。

大佬教程小编现在分享给大家,也给大家做个参

首先在buildConfig中的plugins {
     compile ":mail:1.0.1"
  }
然后再config中配置
grails.mail.default.from = "Xxxx [email protected]>"
grails {
	mail {
		host = "smtp.gmail.com"
		username = "[email protected]"
		password = "xxxx"
		port=587
		props = ["mail.smtp.auth":"true","mail.smtp.socketFactory.port":"465","mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory","mail.smtp.socketFactory.fallBACk":"false"]
	}
}
在resources中加入如下 代码:
beans = {
	taskExecutor(org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor) {
		corePoolSize = 10
		maxPoolSize = 30
		queueCapacity = 6
		keepAliveSeconds = 2000
	}
	mail(SendEmailAsynchronously) {
		taskExecutor = ref('taskExecutor')
	}
}
再建@L_197_10@ 工具类代码如下:

import org.codehaus.groovy.grails.commons.ApplicationHolder
import org.springframework.core.task.TaskExecutor;



class SendEmailAsynchronously {

    static transactional = true
	private static TaskExecutor taskExecutor
	
    def ctx = ApplicationHolder.getApplication().getMainContext();
    def mailservice = ctx.getBean("mailservice");
    def messagesource = ctx.messagesource
   
	def fromEmail
	def toEmail
	def mailObject
	def emailBody 
	def attach
	public SendEmailAsynchronously() {
	}
    public SendEmailAsynchronously(def toEmail,def mailObject,def emailBody) {
		this.fromEmail = 'xxx<[email protected]>'
		this.toEmail = toEmail
		this.mailObject = mailObject
		this.emailBody = generateContent(emailBody)
       
    }
	
	public SendEmailAsynchronously(def toEmail,def emailBody,def attach) {
		this.fromEmail = 'xxx [email protected]'
		this.toEmail = toEmail
		this.mailObject = mailObject
		this.emailBody = generateContent(emailBody)
		this.attach = attach
	   
	}

	public void sendMail() {
		taskExecutor.execute( new Runnable(){
			@Override
			public void run() {
				try {
					println "start send mail"
						mailservice.sendMail {
							from fromEmail
							to toEmail
							subject mailObject
							html emailBody
						}
						println "end send mail"
				}catch(Exception E){
				    println e
                    try{
                        User.findByEmail(toEmail).delete()
                    }catch (Exception uE){
                        print "User=="+ue
                    }

				}
			}
		})
	}
	
	
	public void setTaskExecutor(TaskExecutor taskExecutor) {
		this.taskExecutor = taskExecutor
	}
	private String generateContent(bodyContent) {
		if(bodyContent instanceof String) {
			return bodyContent
		}else if(bodyContent instanceof ClosurE) {
			//bodyContent is a closure
			def sw = new StringWriter()
			def mkp = new groovy.xml.MarkupBuilder(new PrintWriter(sw))
			mkp.html {
				body(bodyContent)
			}
			return sw.toString()
		}
	}

	
	
}

大佬总结

以上是大佬教程为你收集整理的grails 发送邮件全部内容,希望文章能够帮你解决grails 发送邮件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: