Javamail 更改主题行的字符集

2024-01-11

我正在使用 Javamail (javax.mail) 发送邮件。我成功地将邮件内容调整为utf-8。但是我无法将主题行设置为 utf-8 编码字符串。

我什至尝试过

mail.setSubject(new String(subject.getBytes("utf-8"), "utf-8"));

但它仍然以 Cp1252 的形式发送。下面给出了邮件标头示例:

有任何想法吗?

example from mail headers
(source: friendfeed-media.com http://m.friendfeed-media.com/a328a80db12f3c17a8aed06be106045354355abf)


你应该使用setSubject(字符串主题,字符串字符集) http://java.sun.com/products/javamail/javadocs/javax/mail/internet/MimeMessage.html#setSubject%28java.lang.String,%20java.lang.String%29这是用于此目的的一个方便的功能。

Session session=Session.getDefaultInstance(new Properties());
MimeMessage mimeMsg= new MimeMessage(session);
String subject="Herr Müller reist nach \u0141\u00f3d\u017a.";
mimeMsg.setSubject(subject,"utf-8");
System.out.println(subject);
System.out.println(mimeMsg.getHeader("Subject")[0]);

In Mime实用程序 http://java.sun.com/products/javamail/javadocs/javax/mail/internet/MimeUtility.html据说:

根据 RFC 2047,有一组方法可以对 MIME 标头进行编码和解码。请注意,一般来说,在使用 setSubject 和 setRecipients 等方法时不需要这些方法;当使用这些“更高级别”的方法时,JavaMail 将自动编码和解码数据。仅当使用 setHeader 和 getHeader 方法操作原始 MIME 标头时才需要以下方法。

从我的观点,Message.setSubject应该是此目的的切入点。

The cp1252在您的主题编码中显示,因为它是您平台上的标准编码。

您发布的示例是“结果”

mail.setSubject(MimeUtility.encodeText(subject, "cp1252", "Q"));`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javamail 更改主题行的字符集 的相关文章

  • 从txt文件中读取数据而不下载它?

    我想从提供的文本文件中解析信息 有没有一种方法可以在应用程序中执行此操作 而无需先下载文件 以某种方式传输文本内容 打开到 URL 的 Http 连接 使用内置 HttpURLConnection 或使用 commons httpclien
  • Java - 将无符号十六进制字符串解析为有符号长整型

    我有一堆十六进制字符串 其中之一是 d1bc4f7154ac9edb 这是 3333702275990511909 的十六进制值 如果执行 Long toHexString d1bc4f7154ac9edb 这与您得到的十六进制相同 现在
  • 在Java Servlet中获取通过jquery ajax发送的参数[重复]

    这个问题在这里已经有答案了 我在网上搜索这个主题 但找不到有效的示例 我会很高兴有人能给我帮助 这就是我测试的 ajax url GetJson type POST dataType json contentType application
  • 使用itext java库复制时pdf文件大小大大增加

    我正在尝试使用 Java 中的 itextpdf 库将现有的 pdf 文件复制到一些新文件中 我使用的是 itextpdf 5 5 10 版本 我在两种方式上都面临着不同的问题 PDFStamper 和 PdfCopy 当我使用 PDFSt
  • 来自行号的方法名称

    给定特定类源代码 Java C 的行号 是否有一种简单的方法来获取它所属的方法的名称 如果它落入其中 大概使用抽象语法树 这对于将 checkstyle 的输出限制为仅触及的方法很有用 我假设您必须使用抽象语法树来执行 Line gt Me
  • Java:为什么.class文件中的方法类型包含返回类型,而不仅仅是签名?

    class 文件的常量池中有一个 NameAndType 结构 它用于动态绑定 该类可以 导出 的所有方法都被描述为 签名 返回类型 喜欢 getVector Ljava util Vector 当某些 jar 中方法的返回类型发生更改时
  • JAX-WS 入门 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有人可以推荐一些关于 JAX WS 入门的好教程吗 使用各种工具 如 wsgen 等 您可以从这里开始 通过 Java SE 6 平台介绍
  • 清空变量不会使方法引用无效[重复]

    这个问题在这里已经有答案了 为什么代码不抛出NullPointerException当我使用与变量绑定的方法引用时dog我后来分配了null to 我正在使用 Java 8 import java util function Functio
  • 当我们使用赋值而不是比较时,如何评估 if/while 条件?

    我在学习 Java 的 OCA OCP 时发现了这个令人惊讶的事情 下面是第一段代码 其中 if 测试条件 部分 让我惊讶 public class BooleanIf public static void main String args
  • 递归取消 allOf CompletableFuture

    如果我有 CompletableFuture
  • 是否可以创建 Java RAM 磁盘以与 java.io.* API 一起使用?

    我正在使用一个第三方库 它基本上创建一个输出目录 其中包含不同类型的文件和子目录 我希望能够编写单元测试来确认输出正确 我希望能够将库与 RAM 磁盘一起使用 这样库所做的任何事情都不会以任何方式接触实际的磁盘板 这个想法是让测试运行和清理
  • 生成一定长度的所有排列

    假设我们有一个字母表 abcdefghiklimnop 如何以有效的方式以五个一组的形式重复该字母表来递归生成排列 几天来我一直在为此苦苦挣扎 任何反馈都会有帮助 本质上这与 生成给定字符串的所有排列 https stackoverflow
  • java彩色滚动条搜索结果

    我将如何在 Java 中自定义滚动条 以便我可以进行像 chrome 一样的搜索 也就是说在结果所在的位置放置彩色条纹 我不想要一个库 因为我更喜欢自己编写代码 另外 我不想失去我拥有的 L F 欢迎举例 实际上 它将查看一个大的文本文件或
  • 为休息服务实施 JUnit 测试

    我必须为我的休息服务实现一些 JUnit 测试 例如 这是我的休息服务之一 Path dni fe public class HelloWorld POST Path home Consumes MediaType APPLICATION
  • Spring Security 角色层次结构不适用于 Thymeleaf sec:authorize

    我正在使用 Spring Security 3 2 5 RELEASE 和 ThymeLeaf 2 1 4 RELEASE 我已经在安全上下文中定义了角色层次结构 在我的视图层中我正在使用sec authorize属性来定义菜单项 我希望看
  • 在 Eclipse RCP 应用程序中禁用插件贡献

    我经常遇到这个问题 但尚未找到解决方案 每当我编写一个新的基于 Eclipse RCP 的应用程序并包含来自 Eclipse 平台的插件时 我都会 继承 其中一些插件的 UI 贡献 大多数贡献 菜单项 键盘快捷键 属性页 都很有用 但有时我
  • 添加 char 和 int

    据我了解 字符是一个字符 即一个字母 一个digit 标点符号 制表符 空格或类似的东西 因此 当我这样做时 char c 1 System out println c 输出 1 正是我所期望的 那么为什么当我这样做时 int a 1 ch
  • 难以理解 通配符

    我有一个非常基本的问题 下面的代码无法编译 假设 Apple Extends Fruit List
  • 如何在不使用 -cp 开关的情况下在 Groovy 中自动加载数据库 jar?

    我想简化调用 Oracle 数据库的 Groovy 脚本的执行 如何将 ojdbc jar 添加到默认类路径以便我可以运行 groovy RunScript groovy 代替 groovy cp ojdbc5 jar RunScript
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j

随机推荐

  • 如何将复选框绑定到 mvc3 中的视图模型

    我真的很难理解这个问题 我有一个 UserModel 和一个 UserRoleModel public class UserModel Required Display Name User name public string UserNa
  • 从 R Shiny renderTable 中排除行名称

    我正在使用 R Shiny 包中的 renderTable 函数 它返回一个包含行名称的表 理想情况下 我希望显示一个仅包含两列的表格 一列代表 月份 一列代表 值 我当前获得的输出包括行名称 我尝试了一些方法来排除行名称 但没有成功 有什
  • 如何告诉 clang 我的 LLVM 目标应该使用 16 位“int”?

    对于我的 PIC 后端 我希望 int 为 16 位 我 我的目标如何告诉 clang int 的大小应该是多少 仅定义 16 位寄存器似乎还不够 目前 clang O2 emit llvm target pic 转换 int foo in
  • 选项标签中的 html 标签

    看来 html 标签无法插入选项标签中 说
  • Hibernate SchemaFilterProvider获取Java实体名称

    我希望 Hibernate 禁用某些类在启动时进行验证 我的具体用例 spring jpa hibernate ddl auto validate Table name SAME TABLE public class Entity1 Col
  • OpenCV 2.1 托管 C++ (CLI/C++) 中的 cvSetMouseCallback

    我的类名称是 HandMotionRecognition 我在鼠标回调中调用 getColorPixel 方法 这是使用 Visual Studio 2010 的 OpenCV 项目类型是 c gt cli 处理鼠标事件的标准代码 除非我弄
  • 从 IBAction 以编程方式设置 UISwitch isOn 再次调用 IBAction

    我刚刚注意到设置 UISwitchisOn在其 IBAction 中会导致再次调用 IBAction 所以下面的代码 class ViewController UIViewController var count 0 IBOutlet we
  • 是否可以有一个从释放存储操作到不同线程中的存储的释放序列?

    我知道线程 2 中的释放存储操作和线程 1 中的获取加载操作之间会出现同步关系 即使该加载操作不直接读取线程 2 存储的值 前提是有一个释放存储操作和实际读取的存储之间的 释放顺序 只要 实际读取的存储与释放存储操作位于同一线程中 在修改顺
  • 在 Powershell 中运行 Start-Website 命令时出现“无法创建文件”错误

    目前我正在尝试运行这个 powershell 脚本 Param websiteName physicalPath import module WebAdministration website get website where objec
  • 在运行时清除日志文件:被另一个进程错误使用

    我在我的应用程序中使用 Serilog 框架 在我的应用程序中 当日志文件大小达到 2MB 时 我通过将现有文件从 file log 重命名为 file log bak 并创建新的 file log 来创建日志文件的备份 在运行时 我在读取
  • 如何检测 React Native 应用程序何时关闭(而不是暂停)?

    我到处都找过 但找不到这个问题的答案 我如何检测用户何时尝试关闭我的 React Native 应用程序 如进程正在运行 并且他们手动管理其应用程序并强制退出它 我想在发生这种情况时添加注销功能 但是找不到检测它的方法 AppState似乎
  • SQLCipher 与 DBFlow

    我曾经使用过 DBFlow 它在数据库方面非常简单 但我想问是否有一个很好的例子来将 SQLCipher 与 DBFlow 一起使用 我已点击此链接寻求帮助 Raizlabs DBFlow https github com Raizlabs
  • Python Pandas 按小时对日期时间进行分组并计算行数

    这是我的交易数据框 其中每一行表示一个交易 date station 30 10 2017 15 20 A 30 10 2017 15 45 A 31 10 2017 07 10 A 31 10 2017 07 25 B 31 10 201
  • 访问类中的变量

    我想访问一个类中的变量 而不是作为类的实例 例如 class myclas private list array 1 2 3 我需要以这种方式访问 list 的值 myclass list 不可能 还有其他方法吗 谢谢 编辑 谢谢大家的回答
  • 垃圾收集运行时成本的大O分析

    当推理垃圾收集语言中的运行时成本时 诸如以下语句的成本是多少 myList null 用 n 列表中的元素数量 表示 为了便于论证 请将该列表视为引用类型的单链表 无需终结 更一般地说 我正在寻找有关如何使用 GC 语言分析运行时成本的任何
  • Java Eclipse 插件开发 - 以编程方式保存所有项目文件

    我正在为 Eclipse 开发一个插件 我希望它建议用户在运行之前保存未保存的资源 这与 eclipse 建议您在调试之前保存未保存的文件的行为类似 本质上 我想打开以下对话框 任何帮助将不胜感激 如果您在该对话框上按 alt shift
  • Hibernate 中带有连接表的分页

    对此有很多疑问 但我找不到具体的答案 我是 Hibernate 新手 正在尝试实现分页 假设我有两个实体 Parent 和 Child 定义如下 Entity Table name Parents public class Parent I
  • 如何获取 .net 中数组的唯一值?

    假设我有这个数组 MyArray 0 aaa MyArray 1 bbb MyArray 2 aaa 是否有一个 net 函数可以给我唯一的值 我想要这样的东西作为函数的输出 输出数组 0 aaa 输出数组 1 bbb 假设您有 Net 3
  • Apache 别名“最佳猜测”文件名

    使用 Apache 和 mod rewrite 我可以将复杂的请求重写为简单的文件名 例如 RewriteRule shortcut long way around 1 这可以反过来吗 我希望将一个简单的请求重写为未知文件 但我可以通过文件
  • Javamail 更改主题行的字符集

    我正在使用 Javamail javax mail 发送邮件 我成功地将邮件内容调整为utf 8 但是我无法将主题行设置为 utf 8 编码字符串 我什至尝试过 mail setSubject new String subject getB