Grails Grail邮件插件-无法添加多个收件人地址?

Grails Grail邮件插件-无法添加多个收件人地址?,grails,grails-2.0,grails-controller,Grails,Grails 2.0,Grails Controller,新的圣杯世界。我在将逗号分隔的表单值从表单传递到grails mail插件的“TO”属性时遇到问题。无论我尝试什么,我似乎都可以将它放入一个数组或接受多个电子邮件地址 我得到以下错误;我已经删除了域名,所以请忽略它们 Could not parse mail; nested exception is javax.mail.internet.AddressException: Illegal address in string ``"ian@email.com","ian@otheremail.c

新的圣杯世界。我在将逗号分隔的表单值从表单传递到grails mail插件的“TO”属性时遇到问题。无论我尝试什么,我似乎都可以将它放入一个数组或接受多个电子邮件地址

我得到以下错误;我已经删除了域名,所以请忽略它们

Could not parse mail; nested exception is javax.mail.internet.AddressException:
Illegal address in string ``"ian@email.com","ian@otheremail.com"''
抓挠的头,现在,任何想法,我去错误的地方与下面的代码。我完全被难住了

我有普惠制表格。这些字段是根据数据库和文档id自动填充的

<g:form action="emailpublication">

<g:field type="text" name="whogetsemail" value="${publicationInstance?.portfolio?.emailtemplates?.toemailtemplate}" /> 
<g:field type="text" name="publicationName" value="${publicationInstance?.publicationName}" />
<g:textArea type="text" name="publicationContent" value="${publicationInstance?.publicationContent}" cols="20" rows="20"/> 
<g:hiddenField name="id" value="${publicationInstance?.id}" />

<input type="submit" value="Send Email"/>
</g:form>
在发布控制器中,我有以下内容:;我需要通过emailpublication gsp表单中whogetsemail字段填充的一个或多个电子邮件地址发送至

def emailpublication(){

  List<String> recipients = request.getParameterValues("whogetsemail")
    try {
     sendMail{
             to  (recipients.toArray())
             from "ineilsen@emailaddress.com"
             subject params.publicationName
             text params.emailbodyheader + "\n"+"\n" + params.publicationContent + "\n"+"\n" + params.footeremailtemplate
         }

    }
    catch (MailException e) {
        log.error "Failed to send emails: $e.message", e
    }
    catch (MessagingException e) {
        log.error "Failed to send emails: $e.message", e
    }
    redirect(uri: "/publication/show/${params}")
            flash.message = "${params.publicationName} sent to ${params.emailto}"
}

谢谢大家,期待回复,我对

感到失望请尝试去掉收件人周围的括号:

to  recipients.toArray()

我在很多地方都是这样做的……

试着去掉to地址周围的括号:

to  recipients.toArray()

我在很多地方都能做到这一点…

插件支持多个地址,它们可以在Object[]数组或列表中。但是,由于只有一个whogetsemail字段,所以得到的是一个逗号分隔的字符串。如果有多个输入具有相同的名称,request.getParameterValues仅返回多个值

如果您将其更改为以下内容,则它应该可以工作:

List<String> recipients = params.whogetsemail.split(',').collect { it.trim() }

该插件支持多个地址,它们可以位于Object[]数组或列表中。但是,由于只有一个whogetsemail字段,所以得到的是一个逗号分隔的字符串。如果有多个输入具有相同的名称,request.getParameterValues仅返回多个值

如果您将其更改为以下内容,则它应该可以工作:

List<String> recipients = params.whogetsemail.split(',').collect { it.trim() }

负鬼骑士-仍然得到错误无法分析邮件;嵌套异常为javax.mail.internet.AddressException:字符串中的地址非法``ian@email.com,ian@email.comSee伯特的回答。我实际上刚刚注意到它是一个whogetsemail字段,而不是多个字段。但最棒的顶级参考!负鬼骑士-仍然得到错误无法分析邮件;嵌套异常为javax.mail.internet.AddressException:字符串中的地址非法``ian@email.com,ian@email.comSee伯特的回答。我实际上刚刚注意到它是一个whogetsemail字段,而不是多个字段。但最棒的顶级参考!