如何向Grails中的列表或用户阵列(带有电子邮件)发送多封html电子邮件?

如何向Grails中的列表或用户阵列(带有电子邮件)发送多封html电子邮件?,grails,html-email,gsp,Grails,Html Email,Gsp,我有一个用户域,我想一次发送一封电子邮件给所有用户。 但是,我可以单独发送电子邮件,但不知道如何处理发送的多封电子邮件。 我的电子邮件服务如下所示: def mailSender def mailMessage // a "prototype" email instance ApplicationContext applicationContext /** * Send a list of emails. * * @param mails

我有一个用户域,我想一次发送一封电子邮件给所有用户。 但是,我可以单独发送电子邮件,但不知道如何处理发送的多封电子邮件。 我的电子邮件服务如下所示:

def mailSender
    def mailMessage // a "prototype" email instance
    ApplicationContext applicationContext

    /**
     * Send a list of emails.
     *
     * @param mails a list of maps
     */
    boolean sendEmails(mails) {
        def retval = true
        // Build the mail messages
        def messages = []
        for (mail in mails) {
            // create a copy of the default message
            MimeMessage mimeMessage = mailSender.createMimeMessage()

            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "ISO-8859-1");
            helper.setFrom(mail.from);
            helper.setTo(getInternetAddresses(mail.to));
            helper.setSubject(mail.subject);
            helper.setText(mail.text, true);
            if(mail.bcc)
            helper.setBcc(getInternetAddresses(mail.bcc));
            if(mail.cc)
            helper.setCc(getInternetAddresses(mail.cc));
            messages << mimeMessage
        }

        // Send them all together
        try {
            log.debug("mailsender")
            mailSender.send(messages as MimeMessage[])
        }
        catch (MailException e) {
            log.error "Failed to send emails: $e.message", e
            retval = false
        }
        catch (MessagingException e) {
            log.error "Failed to send emails: $e.message", e
            retval = false
        }
        return retval
    }
def邮件发送器
def mailMessage//一个“原型”电子邮件实例
应用上下文应用上下文
/**
*发送电子邮件列表。
*
*@param发送地图列表
*/
发送电子邮件(邮件){
def retval=true
//构建邮件消息
def消息=[]
用于(邮件中的邮件){
//创建默认消息的副本
mimessage MimeMessage=mailssender.createmimessage()
mimessagehelper=新的mimessagehelper(mimessage,true,“ISO-8859-1”);
helper.setFrom(mail.from);
setTo(getInternetAddresss(mail.to));
helper.setSubject(mail.subject);
setText(mail.text,true);
如果(mail.bcc)
setBcc(getInternetAddress(mail.bcc));
如果(mail.cc)
setCc(getInternetAddresss(mail.cc));

邮件哇,看起来需要做很多额外的工作。使用。演示如何发送给多个收件人

sendMail {
    to "someoneorg.com", "someone.elseorg.com"
    …
}

格雷格是绝对正确的,你正在做很多额外的工作。最好是使用插件

但如果你仍然想使用你的方法

setTo()
方法的
MimeMessageHelper
类可以接收多个电子邮件地址,如

helper.setTo("mkb@test.com", "mb@test.com");

阅读。

可以将字符串数组传递给helper.setTo方法 e、 g


我们需要一些机制,比如,当您运行应用程序时,框架应该检测并提示
“节省一些能量,改用${thisPlugin}。保持Groovy!!”
;)
String[] address = {"test0@gmail.com", "test1@gmail.com", "test2@gmail.com"};
        helper.setTo(address);