EmailerService.groovy
上传用户:steveyhw
上传日期:2019-05-13
资源大小:307k
文件大小:1k
源码类别:

PlugIns编程

开发平台:

Java

  1. import org.springframework.mail.MailException
  2. import javax.mail.MessagingException
  3. import org.springframework.mail.MailSender
  4. import org.springframework.mail.SimpleMailMessage
  5. /**
  6.  * Simple service for sending emails.
  7.  *
  8.  * Work is planned in the Grails roadmap to implement first-class email
  9.  * support, so there's no point in making this code any more sophisticated
  10.  * 
  11.  * @auther Haotian Sun
  12.  */
  13. class EmailerService {
  14.   boolean transactional = false
  15.   MailSender mailSender
  16.   SimpleMailMessage mailMessage // a "prototype" email instance
  17.   /**
  18.    * Send a list of emails
  19.    *
  20.    * @param mails a list of maps
  21.    */
  22.   def sendEmails(mails) {
  23.     // Build the mail messages
  24.     def messages = []
  25.     for (mail in mails) {
  26.       // Create a thread safe "sandbox" of the message
  27.       SimpleMailMessage message = new SimpleMailMessage(mailMessage)
  28.       message.to = mail.to
  29.       message.text = mail.text
  30.       message.subject = mail.subject
  31.       messages << message
  32.     }
  33.     // Send them all together
  34.     try {
  35.       println "about to send ${messages.size()} messages to:n${messages.to.join('n')}"
  36.       mailSender.send(messages as SimpleMailMessage[])
  37.     } catch (MailException ex) {
  38.       println "Failed to send emails"
  39.       ex.printStackTrace()
  40.     } catch (MessagingException mex){
  41.       println "Failed to send emails"
  42.       mex.printStackTrace()
  43.     }
  44.   }
  45. }