Email 在grails中有多个发送者

Email 在grails中有多个发送者,email,grails,jakarta-mail,Email,Grails,Jakarta Mail,我需要创建一个应用程序的人可以发送电子邮件,从任何人到任何人 我尝试过在grails中使用邮件插件 mail { host = "smtp.gmail.com" port = 465 username = "adityasoni051293@gmail.com" password = "aditya051293" props = ["mail.smtp.auth":"true", "mail.smtp.socketFactory.

我需要创建一个应用程序的人可以发送电子邮件,从任何人到任何人 我尝试过在grails中使用邮件插件

mail {
    host = "smtp.gmail.com"
    port = 465
    username = "adityasoni051293@gmail.com"
    password = "aditya051293"
    props = ["mail.smtp.auth":"true",
             "mail.smtp.socketFactory.port":"465",
             "mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
             "mail.smtp.socketFactory.fallback":"false"]
  }
无论我如何无法从应用程序中更改发件人, 我在控制器中尝试了以下代码

      def defaultFrom = grailsApplication.config.grails.mail.default.from
      String oldUsername = grailsApplication.config.grails.mail.mailSender.username
      String oldPassword = grailsApplication.config.grails.mail.mailSender.password

      // Change the properties here; send the email
      try {
                grailsApplication.config.grails.mail.default.from = "${parent_personal_data.email}"
                grailsApplication.config.grails.mail.mailSender.username = "${parent_personal_data.email}"
                grailsApplication.config.grails.mail.mailSender.password = "${parent_data.password}"
                sendMail {
                    to "${employee_personal_data.email}"
                    subject "new task"
                    body "you have been added to project and you are given a task"
                }
      }
      catch (Exception e) {

                  // catch block code
      }
      // Set the original settings back
      finally {
          grailsApplication.config.grails.mail.default.from = defaultFrom
          grailsApplication.config.grails.mail.mailSender.username = oldUsername
          grailsApplication.config.grails.mail.mailSender.password = oldPassword
但它也使用我在config.groovy中设置的id。 有办法吗。 或者其他我可以使用的插件
请帮忙,我在等。。。。。谢谢

您面临的问题是Grails Mail插件的设计并不是为了在运行时更改其主机/端口/用户名/密码/连接属性。它设计用于使用
Config.groovy
中定义的一个设置

如果您需要能够在运行时设置该信息,则必须直接使用。幸运的是,您可以查看Grails邮件插件的详细信息,为您提供一些想法,甚至可以利用Spring框架(Grails构建于Spring之上)进行发送。

我也遇到了类似的问题。 您可以将配置传递给MailService#sendMail方法

`MailMessage sendMail(Config config, @DelegatesTo(strategy = Closure.DELEGATE_FIRST, value = MailMessageBuilder) Closure callable)`
以下是一个例子:

和源代码