问题标签 [mime-message]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3385 浏览

java - Mime 7 位编码和 UnsupportedEncodingException

我已经实施了一种方法,但我不确定它是否正确,或者将来会给我带来问题。
给这封电子邮件:

而这段代码:

例外是:

我做了这个修改,所以字符集总是utf-8和编码quoted-printable

例外不再存在并且plainContent是正确的。但这似乎太容易解决了……我将来会遇到哪些问题?有没有更好的方法来跳过异常并在不强制 carset 和编码的情况下获取电子邮件内容?

0 投票
1 回答
20225 浏览

java - 为 MimeMessage 设置内容类型?

我对 mime 消息的内容类型感到困惑。假设我有一条 mime 消息。这是一个多部分消息,正文部分是这样的

  1. 包含纯文本、html 文本的 Mime 正文部分(如正文中的一些粗体字母)
  2. 包含附件的第二个 mime 身体部分,
  3. 第三个 mime 正文部分包含一个内联图像(从带有 cid 的正文引用)

当我创建正文部分时,我是否应该明确设置顶部 mime 消息的内容类型,然后是每个正文部分?

如果是,在上面的例子中它们应该是什么?

multipart/alternative建议用于 html,multipart/mixed建议用于附件,multipart/related建议用于内联。我正在使用所有这些,那么完整消息和不同正文部分的内容类型应该是什么?

只是为了提供信息,我试图复制上面的场景,我既没有为整个 MimeMessage 也没有为正文部分设置内容类型。

但我仍然得到了预期的东西,比如纯文本、正文中的粗体字母、附件、詹姆斯在正确位置的内联图像

为什么 James 在不设置内容类型的情况下解释 mime 消息和正文部分,又为什么以正确的方式显示它们?

参考代码

使用上面的代码,我在与 James 集成的 ThunderBird 中的正确位置获得了正确的 html 文本、纯文本、内联图像和附件。

所以我不明白何时何地将,multipart/mixed设置为 Content-Type 还是邮件服务器在内部设置它?multipart/alternativemultipart/related

0 投票
1 回答
2314 浏览

java - 在电子邮件中嵌入内联图像并通过 cid 引用它?

我正在使用带有 mime 消息的电子邮件发送内联图像。这是相同的简短代码。这工作正常。我的问题是我没有将 MimeMessage 内容类型设置为多部分/相关(也没有将多部分子类型设置为相关),但我的代码工作正常并且我能够在预期位置获得内联图像。当我使用 cid 引用图像部分时,我是否真的应该关心将 Content-Type 设置为 multipart/related 或服务器会处理这个问题?

仅供参考,我的电子邮件客户端可以是 Outlook、lotusnotes、yahoo、gmail、thunderbird

0 投票
1 回答
893 浏览

java - 发送包含这些附件、htmlbody、内联图像或所有这些附件的 mime 消息?

据了解,我的电子邮件应用程序仅支持带有附件的纯文本。如果附件列表为空,我以简单的方式处理它,只需发送 mime 消息,如果附件列表不为空,我将为每个附件创建正文部分,为正文创建一个。将它们添加到设置为 mime 消息的 multipart 中。

但现在需要支持 html 部分和内联图像(其中图像将作为附件发送,html 正文将引用)​​。我知道 mime 的基础知识,即如何为每种 mime 类型创建正文部分。但实际上,当我不知道正文和附件列表将包含什么时,我不知道如何在运行 timw 时创建正文部分。例如,正文只能包含纯文本或 html 正文或带有附件的 html 正文或带有带附件的内联图像的 html 正文或带有附件的纯正文。

坦率地说,我不知道如何处理上述排列和组合的电子邮件正文和附件列表。(例如,有时我需要创建顶部消息作为多部分/混合包含正文部分作为多部分/替代和另一个正文部分平原,bla bla ....)。是否有基于正文内容和附件列表处理这些所有场景的标准代码。请指出我正确的方向?

这是旧的方法签名,它只支持带有附件的纯文本

0 投票
1 回答
4682 浏览

java - 如何使用 JavaMail 的 MimeMultipart 覆盖默认的唯一边界字符串并创建我们自己的边界?

我有一个我使用的网络应用程序,它需要一个特定的边界字符串,如(“公司 mime 边界”)。

当我这样做时,我没有找到一种方法来覆盖 MimeMultipart 的默认行为

Multipart mp = new MimeMultipart();

构造函数始终创建唯一的边界字符串,我想覆盖此行为以拥有自己的边界字符串,但由于没有找到任何 API,因此无法这样做。

即使我将它设置为内容类型,它也不起作用并始终创建一个唯一的边界字符串,因为 MimeMultipart 正在创建一个默认字符串。

mimeMsg.setHeader("Content-Type","multipart/mixed;boundary="company mime boundary");

任何人都可以请建议/帮助我。

如何覆盖此默认行为?

0 投票
2 回答
510 浏览

ios - 任何人为 iOS 编译 mimetic

我想为 IMAP 消息创建一个 mime / multipart 解析器。我有几个链接说mimetic可以做到这一点,但我无法为 iOS 编译它。任何帮助将不胜感激。

0 投票
1 回答
1572 浏览

java - Spring MimeMessageHelper:添加多个CC时出现AddressException

我需要在我的邮件消息中添加多个抄送地址,但我不断收到以下异常:

这是我的代码:

ccAddress 的原始值为“email@email.com;email@email.com” 实际地址有效。为什么会抛出异常并将“,15”添加到CC地址的末尾?

谢谢

0 投票
1 回答
4278 浏览

java - 用 mockito 模拟多部分 mime 请求

我对 Mockito 和模拟 servlet 进行测试还很陌生。我在模拟 HttpServletRequest 时遇到问题,它将一些表单数据作为 MimeMultiPart 发送到我的 servlet。在我的 servlet 中,我调用request.getInputStream()如下:

当我模拟我的输入流时,我创建了一个完整的 MimeMultiPart 消息,然后我尝试在下面的代码中从中返回一个 ServletInputStream

现在,当我运行此测试时,我收到以下错误outStream.writeObject(object)

没有必要发布堆栈跟踪的其余部分,我很确定问题是 MimeMultiPart 不可序列化,但我不知道如何纠正这个问题。还有另一种方法来模拟请求吗?我很茫然 :(

0 投票
2 回答
19545 浏览

java - 在 MimeMessage 中没有正确解释换行符?

所以这是我在调试器中检查时的格式化内容

但是当我在雷鸟中收到它时,我会在一行中收到完整的消息,如下所示。将内容作为 html 发送时,换行符无法正确解释

这是我将消息作为 html 发送的方式

如果我只是将文本作为 msg.setText(body, CHARSET_UTF_8) 发送,那么我会在下一行看到正确格式的消息,即“通过 Internet 发送邮件”。我不明白为什么在将文本作为 html 发送时没有正确解释换行符?

0 投票
1 回答
3774 浏览

java - Java 在 MimeMessage 消息中添加标头

我正在解决的问题是,当我发送邮件时,如果收件人(邮件,抄送/密送)不存在,我不希望发件人收到传递状态通知(失败)邮件。

我正在实施的解决方案是在邮件Prevent-NonDelivery-Report中添加新标头

我想在 java 中的 MimeMessage msg 中添加新标头

我找到了解决方案,我将 props.setProperty("mail.smtp.dsn.notify", "NEVER") 添加到会话的属性中并解决了我的问题