Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以原始html格式接收电子邮件_Java_Html_Email_Velocity_Sendgrid - Fatal编程技术网

Java 以原始html格式接收电子邮件

Java 以原始html格式接收电子邮件,java,html,email,velocity,sendgrid,Java,Html,Email,Velocity,Sendgrid,我通过sendgrid SMTPAuthenticator发送的电子邮件正在发送并显示为原始html。我使用velocity模板在java中为电子邮件提供消息内容 如何在电子邮件中获得正确的html格式而不是原始html 代码如下: Properties props = new Properties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.host", SMTP_HOST_NAME

我通过sendgrid SMTPAuthenticator发送的电子邮件正在发送并显示为原始html。我使用velocity模板在java中为电子邮件提供消息内容

如何在电子邮件中获得正确的html格式而不是原始html

代码如下:

Properties props = new Properties();
    props.put("mail.transport.protocol", "smtp");
    props.put("mail.smtp.host", SMTP_HOST_NAME);
    props.put("mail.smtp.port", 587);
    props.put("mail.smtp.auth", "true");
    SMTPAuthenticator auth = new SMTPAuthenticator();
    Session mailSession = Session.getDefaultInstance(props, auth);
    mailSession.setDebug(true);
    Transport transport = mailSession.getTransport();
    MimeMessage message = new MimeMessage(mailSession);
    String text = messageContent;
    message.setFrom(new InternetAddress(sendFrom));
    message.setSubject(subject);
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(sendTo));
    message.setContent(text, "text/html; charset=utf-8");
    transport.connect();
    transport.sendMessage(message,
    message.getRecipients(Message.RecipientType.TO));
    transport.close();
我还在head元素中的vm文件中添加了mime类型,下面是示例

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

注意:原始html电子邮件只显示很少的时间,而不是所有时间


提前感谢。

我认为您还应该定义Mime主体部分,并将
文本
变量初始化为
MimeBodyPart()
对象。尽管我强烈建议您构建一个多部分消息,该消息同时发送文本/普通部分和文本/html部分。这是ISP在电子邮件中寻找的一个常见问题,因为无法呈现
html
的电子邮件客户端仍然存在

        Multipart multipart = new MimeMultipart("alternative");
        BodyPart textPart = new MimeBodyPart();
        textPart.setContent(
            "Everything is awesome",
            "text/plain; charset=utf-8");
        BodyPart htmlPart = new MimeBodyPart();
        htmlPart.setContent(
            "<p> Everything is awesome! </p>",
            "text/html;charset=utf-8");
        multipart.addBodyPart(textPart);
        multipart.addBodyPart(htmlPart);
        message.setContent(multipart);
Multipart Multipart=新的MimeMultipart(“备选”);
BodyPart textPart=新的MimeBodyPart();
textPart.setContent(
“一切都很棒”,
“文本/纯文本;字符集=utf-8”);
BodyPart htmlPart=新的MimeBodyPart();
htmlPart.setContent(
“一切都很棒!

”, “text/html;charset=utf-8”); multipart.addBodyPart(文本部分); multipart.addBodyPart(htmlPart); message.setContent(多部分);
这是一份副本,不幸的是,询问者没有接受回答请回答红色常见问题。如果您共享代码,有人可以更快地提供帮助。很可能您没有设置其mime类型。我已经将mime类型设置为utf-8,并且还添加了内容类型:text/html。但仍然是这样comes@EvanKnowles我已经添加了内容类型:text/html@Jayan:我已经添加了代码,请看一下。