【问题标题】:Grails mail plugin send from differnet emailsGrails 邮件插件从不同的电子邮件发送
【发布时间】:2014-09-18 02:58:06
【问题描述】:

我有一个个人电子邮件列表(在不同类型的邮件服务上,例如 gmail 和 hotmail)。我想从他们各自的电子邮件地址发送邮件,如下所示:

mailService.sendMail {
   from "hereMail@some.com"
}

为了发送邮件,我必须在Config.groovy 中设置配置。我应该在Config.groovy 文件中维护所有电子邮件配置吗?还是针对此问题存在其他解决方案?

【问题讨论】:

    标签: grails grails-plugin


    【解决方案1】:

    配置只允许从一个 SMTP 服务器发送。发送电子邮件的帐户不一定是“发件人”地址,即使它是从该帐户发送的。您应该能够使用一个帐户作为 SMTP 服务器并根据需要更改“发件人”。

    【讨论】:

    • 如果我理解正确你建议我在 config.groovy 中使用一个 SMTP 帐户配置,对吧?但是,如果我想发送其他用户的电子邮件怎么办?例如,我的应用程序中有很多员工,每个人都有自己的地址邮件(仅在 gmail 上) mailService.sendMail { from "hereMail@some.com" } 我必须在哪里为每个地址邮件设置密码?跨度>
    • 您不必为每个地址指定密码。它实际上不会从他们的邮件帐户发送,而是从配置的邮件帐户发送,邮件消息的发件人地址不同,而不是配置帐户的发件人地址。这有助于澄清吗?
    • 我必须在 gmail 帐户的设置中将人员地址添加到主邮件(在 config.groovy 中配置的邮件)以验证地址。它有效:)
    【解决方案2】:

    配置项设置传出消息的“默认”发件人地址。该插件提供了一个 DSL,用于指定消息的组件,如果需要,还包括一个特定的 From 地址。如果您没有在消息 DSL 中提供 from 规范,则它使用配置指定值。

    这是我在消息传递系统中使用的一段代码,用于设置从外发消息地址提供的用户帐户:

            mailMessage = mailService.sendMail {
                multipart true
                if (toAddresses) { to toAddresses }
                if (ccAddresses) { cc ccAddresses }
                if (bccAddresses) { bcc bccAddresses }
                from messageSpecification.from
                subject messageSpecification.subject
                if (messageSpecification.plainText) { text messageSpecification.plainText }
                if (messageSpecification.htmlText) { html messageSpecification.htmlText }
                messageSpecification.attachments.each {
                    attach(it.filename, it.mediaType, it.data)
                }
            }
    

    只需将 messageSpecification.from 引用替换为您的特定发件人地址即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 2014-08-17
      • 2015-10-30
      • 2011-09-16
      相关资源
      最近更新 更多