java - 如何使用 groovy 将 html 模板作为邮件发送

标签 java groovy jakarta-mail

我正在使用 JavaMail API 1.4.4 发送邮件。到目前为止,我能够发送邮件,但实际上我需要发送 HTML 内容,以便在收到邮件时处理 html 标签。

示例:如果我的消息中有表格代码,它应该处理 html 代码并将其显示在邮件中

我的代码

import java.io.File;
import java.util.*
import javax.mail.*
import javax.mail.internet.*
import javax.activation.*

class Mail {
  static void sendMail(mailProp) {      
    // Get system properties
    Properties properties = System.getProperties()

    // Setup mail server
    properties.setProperty("mail.smtp.host", mailProp.host)

    // Get the default Session object.
    Session session = Session.getDefaultInstance(properties)

    try {
      // Create a default MimeMessage object.
      MimeMessage message = new MimeMessage(session)

      // Set From: header field of the header.
      message.setFrom(new InternetAddress(mailProp.from))

      // Set To: header field of the header.
      message.addRecipient(Message.RecipientType.TO,new InternetAddress(mailProp.to))

      // Set Subject: header field
      message.setSubject("My Subject!")

      // Now set the actual message
      message.setText(createMessage())

      // Send message
      Transport.send(message)
      System.out.println("Sent message successfully....")
    }
    catch( MessagingException mex ) {
        mex.printStackTrace()
    }
  }

  static def createMessage() {
    def message="""<h1>This is actual message</h1>"""
  }

  static main(args) {
    AppProperties.load()

    def mailProp=[:]
    mailProp.host=AppProperties.get("host")
    mailProp.from=AppProperties.get("sender")
    mailProp.to=AppProperties.get("receiver")
    mailProp.server=AppProperties.get("mailserver")

    sendMail(mailProp)
  }
}

最佳答案

Groovier 发送方式可能是:

try {
  // Create a default MimeMessage object.
  new MimeMessage(session).with { message ->
    // From, Subject and Content
    from = new InternetAddress( mailProp.from )
    subject = "My Subject!"
    setContent createMessage(), 'text/html'

    // Add recipients
    addRecipient( Message.RecipientType.TO, new InternetAddress( mailProp.to ) )

    // Send the message
    Transport.send( message )

    println "Sent successfully"
  }
}
catch( MessagingException mex ) {
    mex.printStackTrace()
}

关于java - 如何使用 groovy 将 html 模板作为邮件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833892/

相关文章:

java - 如何在java函数中修改两个Double对象?

java - 我如何才能防止 LogCat 接收到我手机上的所有内容?

java - java.util.HashSet 是否不遵守其规范?

java - 用 spock 模拟的值不会转移到 Kotlin 吗?

elasticsearch - Kibana脚本字段中的Groovy脚本

java - 发送 SMTP 的主机错误

javamail 邮件发不出去

java - maven 跳过编译错误的测试

json - 如何在 grails 中注册自定义 json marshaller

java - 使用 imap 从 Gmail 接收附件