【问题标题】:Grail mail plugin - unable to add in multiple TO addresses?圣杯邮件插件 - 无法添加多个收件人地址?
【发布时间】:2012-12-03 23:43:24
【问题描述】:

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

我收到以下错误;我已删除域名,请忽略它们。

Could not parse mail; nested exception is javax.mail.internet.AddressException:
Illegal address in string ``"ian@email.com","ian@otheremail.com"''

现在挠头,关于以下代码哪里出错的任何想法。我完全被难住了。!!

在 emailpublication GSP 表格中我有。这些字段是从数据库和文档 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}"
}

谢谢大家,期待回复,我很沮丧

【问题讨论】:

    标签: grails grails-2.0 grails-controller


    【解决方案1】:

    插件支持多个地址,它们可以在Object[] 数组或List 中。但是你得到一个逗号分隔的字符串,因为只有一个 whogetsemail 字段。 request.getParameterValues() 仅在有多个同名输入时返回多个值。

    如果你把它改成这样,它应该可以工作:

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

    to recipients
    

    【讨论】:

      【解决方案2】:

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

      to  recipients.toArray()
      

      我在很多地方都这样做...

      【讨论】:

      • 负面幽灵骑士 - 仍然出现错误无法解析邮件;嵌套异常是 javax.mail.internet.AddressException: Illegal address in string ``"ian@email.com","ian@email.com"''
      • 见伯特的回答。实际上,我刚刚注意到它是一个 whogetsemail 字段,而不是多个字段。但是很棒的壮志凌云参考!
      猜你喜欢
      • 1970-01-01
      • 2018-05-30
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      相关资源
      最近更新 更多