相关疑难解决方法(0)

最佳实践 - 发送javamail mime多部分电子邮件 - 和gmail

我有一个需要发送确认电子邮件等的Tomcat应用程序.我已经用Javamail(mail.jar)编写了电子邮件编码器来发送多部分文本/ HTML电子邮件.我将代码基于Java EE示例.我在本地服务器上使用SMTP MTA.

它很棒.在Outlook中,我看到了HTML版本.如果我将其拖到Outlook垃圾邮件文件夹中,我会看到文本版本.所以我解释说它有效.

但是,如果我在Gmail中查看电子邮件,我只会看到文字版本.我知道HTML就在那里(这就是Outlook从中得到的).但是Gmail没有显示它...我有很多来自其他系统的电子邮件,在Gmail中显示为HTML.

有人能指出我显示我失踪的规格吗?我需要创建特殊标题吗?

谢谢

代码如下所示:

Message message = new MimeMessage(session);
Multipart multiPart = new MimeMultipart("alternative");

try {

    MimeBodyPart textPart = new MimeBodyPart();
    textPart.setText(text, "utf-8");

    MimeBodyPart htmlPart = new MimeBodyPart();
    htmlPart.setContent(html, "text/html; charset=utf-8");

    multiPart.addBodyPart(htmlPart);
    multiPart.addBodyPart(textPart);
    message.setContent(multiPart);

    if(from != null){
        message.setFrom(new InternetAddress(from));
    }else
        message.setFrom();

    if(replyto != null)
        message.setReplyTo(new InternetAddress[]{new InternetAddress(replyto)});
    else
        message.setReplyTo(new InternetAddress[]{new InternetAddress(from)});

    InternetAddress[] toAddresses = { new InternetAddress(to) };
    message.setRecipients(Message.RecipientType.TO, toAddresses);
    message.setSubject(subject);
    message.setSentDate(new Date());

    Transport.send(message);

} catch (AddressException e) {
    e.printStackTrace();
    System.out.println("Error: "+e.getMessage());

} catch (MessagingException …
Run Code Online (Sandbox Code Playgroud)

java tomcat smtp jakarta-mail html-email

27
推荐指数
1
解决办法
5万
查看次数

MIME类型,以满足HTML,电子邮件,图像和纯文本?

Mail multipart/alternative vs multipart/mixed的答案表明附件应该是multipart/alternative消息的对等,如:

  • 多部分/混合
    • 多部分/替代
      • 纯文本/
      • text/html的
    • 一些/东西(处置:附件)
    • 一些/东西(处置:附件)
    • ...

我想发送带有一些内嵌图像和纯文本替代品的html部分的电子邮件.各个部分的首选MIME布局是什么?在示例代码和其他问题中出现了几个选项,但哪些选项在实践中效果最好?我倾向于这样:

  • 多部分/替代
    • 纯文本/
    • 多/相关
      • text/html(通过cid引用图像)
      • 图像/ GIF
      • 图像/ GIF
      • ...

这样,图像显然是为了渲染html部分.一个完整的例子是:

From: Rich Example <rich-example@example.org>
To: A Recipient <recipient@example.org>
Subject: An example of email with images and a plain alternative
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="outer-boundary"

This is a MIME-encoded message. If you are seeing this, your mail
reader is old.
--outer-boundary
Content-Type: text/plain; charset=us-ascii

This message might make you :) or it might make you :( …
Run Code Online (Sandbox Code Playgroud)

email mime

24
推荐指数
1
解决办法
5万
查看次数

如何在Go中为Email创建嵌套的multipart/MIME信封?

我正试图弄清楚如何在Go中为电子邮件构建multipart/mime信封.以下代码生成正确嵌套的实体 - 但未正确插入边界.

您可以在https://play.golang.org/p/XLc4DQFObRn上看到演示

package main

import (
    "bytes"
    "fmt"
    "io"
    "log"
    "math/rand"
    "mime/multipart"
    "mime/quotedprintable"
    "net/textproto"
)

//  multipart/mixed
//  |- multipart/related
//  |  |- multipart/alternative
//  |  |  |- text/plain
//  |  |  `- text/html
//  |  `- inlines..
//  `- attachments..


func main() {

    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)

    var part io.Writer
    var err error

    // Text Content
    part, err = writer.CreatePart(textproto.MIMEHeader{"Content-Type": {"multipart/alternative"}})
    if err != nil {
        log.Fatal(err)
    }

    childWriter := multipart.NewWriter(part) …
Run Code Online (Sandbox Code Playgroud)

email mime multipart go

9
推荐指数
1
解决办法
490
查看次数

Keycloak 在重置密码电子邮件中添加公司徽标

我正在尝试在重置密码电子邮件中显示公司徽标。我已经检查了 keycloak 文档,发现它们不支持它。我还尝试将图像编码为 base64,但 Gmail 不支持。我怎样才能做到这一点?

html java keycloak

5
推荐指数
1
解决办法
2万
查看次数

用 Ruby 格式化电子邮件回复

我正在用 ruby​​ 制作自己的电子邮件客户端,它当前可以解析/读入消息。它还可以创建消息回复、设置标头并将消息发送给原始发件人。

如何将原始引用的消息添加到回复中?

我应该如何格式化回复中的原始消息?有最佳实践或格式吗?MIME/RFC?我知道应该有一个 HTML 和文本字符串。只是不确定如何制作这些字符串。

现在我的回复下面没有原始消息,这使得它本身很难理解。

ruby email mime ruby-on-rails actionmailer

3
推荐指数
1
解决办法
1009
查看次数

尝试使用 MIME 发送“替代”,但它也显示在功能强大的邮件客户端中

我正在尝试发送漂亮的 MIME 电子邮件,其中 html 将尽可能显示,如果不可能,它应该有一个文本回退。

也就是说,当 html 包含图像时,“alternative”部分应显示“img ... should be here”。

问题是我在 gmail 中看到了所有内容,还有其他选择。

我的 MIME 消息有问题吗?

以下是内容:

Content-Type: multipart/mixed; boundary="===============9061258228856181354=="
MIME-Version: 1.0
From: me@gmail.com <me@gmail.com>
To: me@gmail.com

--===============9061258228856181354==
Content-Type: multipart/alternative; boundary="===============2889524977048828163=="
MIME-Version: 1.0

--===============2889524977048828163==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

img 1043833786270341319 should be here
--===============2889524977048828163==--

--===============9061258228856181354==
Content-Type: image/jpeg; name="sky.jpg"
MIME-Version: 1.0
Content-ID: <1043833786270341319>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK
CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAEbAakDASIA
AhEBAxEB/8QAHQAAAgIDAQEBAAAAAAAAAAAAAgQBAwUGBwAICf/EADoQAAEEAQMDAwIFAgYBBAMB

--===============9061258228856181354==
Content-Type: multipart/related; boundary="===============7011550496984103126=="
MIME-Version: 1.0

--===============7011550496984103126==
Content-Type: text/html; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

<div><h1>bla</h1></div><img …
Run Code Online (Sandbox Code Playgroud)

python java email mime content-type

2
推荐指数
1
解决办法
1210
查看次数

使用内嵌图像和PDF附件创建HTML邮件

我想在Python/Django中编写包含以下部分的HTML邮件:

  • HTML链接到logo.png
  • logo.png应该在邮件用户代理中以内联方式(而不是附件)显示
  • info.pdf应显示为附件
  • 如果邮件用户代理无法显示HTML,则应显示该文本.

我关注了这篇博文.

结果:

  • HTML和内嵌图像有效
  • 但是info.pdf文件被视为内联logo.png,而某些邮件用户代理不显示:-(

如何在python中的一个邮件中创建两种方式(下载(info.pdf)和inline(logo.png))?

python email django mime

2
推荐指数
1
解决办法
4533
查看次数