email - Grails发送HTML Mail签名的方法错误

标签 email grails sendmail

我试图弄清楚如何用邮件发送来发送HTML邮件。我被困住了,并得到“没有方法签名:适用于参数类型:(空)值:[空]”,这是我试图传递给电子邮件的请求ID变量。
我的工作在下面

import groovy.util.logging.Slf4j
import org.camunda.bpm.client.ExternalTaskClient
import org.camunda.bpm.client.task.ExternalTask
import org.camunda.bpm.engine.ProcessEngines
import org.camunda.bpm.engine.ProcessEngine
import grails.core.GrailsApplication
import edu.andrews.bpm.changeofprogram.EmailReceivedRequestExternalTaskService
import org.camunda.bpm.client.interceptor.auth.BasicAuthProvider
//import edu.andrews.bpm.changeofprogram.StudentApprovalRequestController
import org.springframework.beans.factory.annotation.Value
@Slf4j



class EmailReceivedRequestExternalTaskJob {
    EmailReceivedRequestExternalTaskService emailReceivedRequestExternalTaskService
//    StudentApprovalRequestController studentApprovalRequestController

    @Value('${camunda.bpm.rest.endpoint}')
    String bpmRESTUrl

    static triggers = {
        //                                                                              s m   h D M W Y
        cron name:   'EmailReceivedRequestExternalTask',   startDelay: 10000, cronExpression: '0 */5 * * * ?'
    }

    def execute() {
        // execute job by Polling Camunda BPM for tasks on the topic
        // specified in the Camunda Modeler implementation semantics
        log.info("EmailReceivedRequestExternalTaskService polling of BPM endpoint ${bpmRESTUrl} starting...")

        ExternalTaskClient client = ExternalTaskClient.create()
                .baseUrl(bpmRESTUrl)
                .maxTasks(5)
        // .addInterceptor(new BasicAuthProvider(username, password))
                .build()
        client.subscribe("ProgramChangeReceivedEmail") // topic from Camunda Modeler
                .lockDuration(10000L)
                .handler( { externalTask, externalTaskService ->
                    log.info("Executing external task handler...")
                    Map<String,Object> procVars = externalTask.getAllVariables()
                    Map<String,Object> stuApproveVars = externalTask.getAllVariables()
                    String requestId = procVars.requestId
//                   def String idn  = procVars.idn
                    String email = stuApproveVars.email
                    emailReceivedRequestExternalTaskService.studentApprovalRequest(email)
                    emailReceivedRequestExternalTaskService.studentApprovalRequest(idn)
                    log.info("\texternalTaskVars: ${procVars}")
                    externalTaskService.complete(externalTask)

                }).open()

        client.stop()

        log.info("EmailReceivedRequestExternalTaskService...")
        //log.info(idn)
    }
}
这是服务电话
import grails.gorm.services.Service
import grails.gorm.transactions.Transactional

@Transactional
class EmailReceivedRequestExternalTaskService {

//   def ApplyAcknowledgment(String email, String studentName) {
    def ChangeAcknowledgment(String email, String requestId) {
        sendMail {
            async true
            from "donnotreply@andrews.edu"
            to email
            subject "Change of Program"
//            text "Thank you for submitting your change of program request. You will receive an email when it has been approved or denied."
           html view: "/studentApprovalRequest/AcknowledgementEmail", model: [param1: requestId]
//            html view: "/freeclass/FreeClassApplyAcknowledgment"

        }

    }
}
这是gsp html信息
<html>
 <head>
 </head>
 <body>
                    <p>Thank you for submitting your change of program request. You will receive an email when it has been approved or denied.</p>
                    <p>record: ${requestId}</p>
                    "<p>Thank you.</p>"
</body>
</html>

最佳答案

问题之一是,您的GSP似乎期望使用名为requestId的模型变量,但是EmailReceivedRequestExternalTaskJob正在创建名为param1的模型变量:

html view: "/studentApprovalRequest/AcknowledgementEmail", model: [param1: requestId]
您可以将其更改为如下所示:
html view: "/studentApprovalRequest/AcknowledgementEmail", model: [requestId: requestId]

关于email - Grails发送HTML Mail签名的方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63033234/

相关文章:

java - 如何在邮件正文中发送图像而不是像java中的附件一样

python - 使用 sendgrid 和 python 发送 html/文本电子邮件的简单方法?

php - 重构 php 联系表单

java - 如何在javamail中设置正确的电子邮件地址?

python - 我如何在Python中发送电子邮件?

Grails:更新域中的单个对象, ".save"与 ".executeUpdate"

javascript - 定义按 Enter 键时的默认按钮

unit-testing - 使用 Spock 和 Grails 在全局 stub 类中注入(inject) stub 协作者

linux - sendmail 452 4.5.3 收件人太多

PHP 邮件总是给我 undefined index ,有帮助吗?