如何使用 DKIM 签署 Javamail

2024-02-11

有没有一个库或一种方法可以在没有外部库的情况下做到这一点?我使用 apache james 作为我的邮件服务器,目前发送电子邮件如下:

public void sendMessage(String to, String subject, String content) {
    MimeMessage message = new MimeMessage(session);
    try {
        message.addRecipients(Message.RecipientType.TO, to);
        message.setFrom(new InternetAddress(from));
        message.setSubject(subject);
        message.setContent(content, "text/html; charset=utf-8");
        Transport.send(message);
    } catch (MessagingException e) {
        e.printStackTrace();
    }       
}

但我想事先与 DKIM 签署电子邮件。我知道我需要实现 DKIM 登录到 james 服务器并计划使用 jDKIM 来执行此操作,我也知道我需要使用 www.port25.com 之类的东西创建密钥,但是我如何在 java 中实际签署电子邮件我发出去?


简单的Java邮件 http://www.simplejavamail.org/#/features最近添加了对 DKIM 签名的支持。这是您的代码,但现在使用 Simple Java Mail:

public void sendMessage(String to, String subject, String content) {
    final Email email = new Email.Builder()
            .from(null, from)
            .to(null, to)
            .subject(subject)
            .textHTML(content)
            .build();

    email.signWithDomainKey(new File(properties.getProperty("mail.smtp.dkim.privatekey")),
                            properties.getProperty("mail.smtp.dkim.signingdomain"),
                            properties.getProperty("mail.smtp.dkim.selector"));

    new Mailer(...).sendMail(email);
}

私钥参数可以是File, InputStream or a byte[].

有趣的是,Simple Java Mail 在幕后使用java-utils-mail-dkim https://github.com/markenwerk/java-utils-mail-dkim(GitHub),这是休眠的活跃分支JavaMail 的 DKIM https://github.com/usrflo/DKIM-for-JavaMail(GitHub),这是您现在使用的库的延续,用于 Java 邮件的 DKIM https://sourceforge.net/projects/dkim-javamail/(来源Forge)。所以,你用的这个已经很旧了。

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

如何使用 DKIM 签署 Javamail 的相关文章

  • 在 Kotlin 中实现返回 Collection 的 Java 方法

    我将 Kotlin 与 Spring Security 结合使用 实现该方法时 public interface UserDetails extends Serializable Collection
  • JPanel透明背景和显示元素[重复]

    这个问题在这里已经有答案了 我插入一个背景图e 变成 aJPanel但一些界面元素消失了 以下 Java Swing 元素不会出现 标签标题 标签 usuario 标签 密码 按钮加速器 你能否使图像透明或元素不透明 setOpaque f
  • 以编程方式将 PEM 证书导入 Java KeyStore

    我有一个由两个文件 crt 和 key 组成的客户端证书 我希望将其导入到 java KeyStore 中 然后在 SSLContext 中使用 以通过 Apache 的 HTTPClient 发送 HTTP 请求 但是 我似乎找不到一种以
  • .java 和 .scala 类之间是否可能存在循环依赖?

    假设我在 java 文件中定义了类 A 在 scala 文件中定义了类 B A 类使用 B 类 B 类使用 A 类 如果我使用 java 编译器 则会出现编译错误 因为 B 类尚未编译 如果我使用scala编译器A类将找不到 有没有可以同时
  • Maven + Cobertura:无法找到[您的班级]。你指定了源目录吗?

    我有 MyMath 类 有两个简单的方法 multi 和 add 和测试类只会测试多种方法 public class MainTest Test public void testMultiply MyMath tester new MyMa
  • 我们可以在三元运算符(Java)中使用命令吗?

    这是一个工作代码 String a first String b second String object System out println object null a b 但它不是 String a first String b se
  • 独占锁定ConcurrentHashMap

    我知道不可能锁定 ConcurrentHashMap 进行独占访问 但是 我找不到原因 是因为构成CHM的 Segment 没有被api公开吗 据推测 如果是的话 客户端代码可以执行 交接 锁定 Cheers 我知道不可能锁定 Concur
  • getClassLoader().getResource() 返回 null

    我有这个测试应用程序 import java applet import java awt import java net URL public class Test extends Applet public void init URL
  • LibGdx 如何使用 OrthographicCamera 滚动?

    我已经找了 10 个小时 字面意思 我已经完成了 我需要问一下 事情是我正在学习如何使用 LibGdx 来编写 Java 游戏 我正在做一个水平太空飞船游戏 所以 我最糟糕的问题是我不知道如何滚动 我认为绘制会更好地解释 我想绘制一个巨大的
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • java JFileChooser 文件大小过滤器

    我知道我可以按文件类型进行过滤 但是可以按文件大小进行过滤吗 例如 JFileChooser 仅显示 3 MB 以内的图片 简短的回答应该是 你尝试过什么 长答案是肯定的 JFileChooser fc new JFileChooser f
  • 在 Mac 上使用 JRE 打开 jar 文件

    我有一个 jar 文件 旨在通过命令行运行 我不打算在运行应用程序的机器上进行任何java开发 我的思考过程是 因此我应该只需要JRE而不是JDK 此外 JDK 大约是 JRE 的 4 倍 我不想下载它 在 Mac 上安装 JRE 时 它不
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • Java G1 GC 处理引用对象运行缓慢

    我已经在 J ava 上运行了计数器 它24小时工作 每秒点击通过100次左右 白天 GC 处理时间从 20 60 毫秒缓慢上升到 10000 60000 毫秒 然后下降到 20 60 毫秒 这种模式不时地重复 从 GC 日志中我发现 GC
  • java 属性文件作为枚举

    是否可以将属性文件转换为枚举 我有一个包含很多设置的属性文件 例如 equipment height equipment widht equipment depth and many more like this and not all a
  • .class 与 .java

    class 文件和 java 文件有什么区别 我正在尝试让我的小程序工作 但目前我只能在 Eclipse 中运行它 还不能嵌入 HTML 谢谢 编辑 那么如何使用 JVM 进行编译呢 class 文件是编译后的 java 文件 java 都
  • @TestPropertySource 不适用于 Spring 1.2.6 中使用 AnnotationConfigContextLoader 的 JUnit 测试

    似乎我在 Spring 4 1 17 中使用 Spring Boot 1 2 6 RELEASE 所做的任何事情都不起作用 我只想访问应用程序属性并在必要时通过测试覆盖它们 无需使用 hack 手动注入 PropertySource 这不行
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • Mule/码头设置

    我有一个正在运行的 Mule 应用程序 我想在其上设置 Jetty 来响应 http 请求 以下配置
  • 将隐藏(生物识别)数据附加到 pdf 上的数字签名

    我想知道是否可以使用 iText 我用于签名 或 Java 中的其他工具在 pdf 上添加生物识别数据 我会更好地解释一下 在手写板上签名时 我会收集签名信息 例如笔压 签名速度等 我想将这些信息 java中的变量 与pdf上的签名一起存储

随机推荐

  • 无法在 AWS Lambda 上加载文件 mysql2

    尝试让 Lambda 连接到 RDS 数据库 但无法加载 mysql2 gem 尝试过pristine说明 但这并没有解决问题 我已经在供应商目录中构建了 mysql2 gem 这是使用捆绑安装 部署 据推测 这是一个问题 因为 mysql
  • CodeIgniter:在实时服务器上找不到 404 页面

    我一直在使用 CodeIgniter 开发一个小型 Web 应用程序 在本地进行测试后 我将其放在我的网络服务器上 以允许其他人测试一些功能 导航到该网站时 我得到 404页面未找到错误页面 当在我的本地计算机上查看它时 一切都会加载并完美
  • 如何在 Google App Engine 上调试 Cron 作业?

    情况 Cron 与 Rails 应用程序一起 部署到 GCPcron yaml cron description count things regularly url api v1 cron rake task schedule every
  • AWS Cloudfront 和 ELB 安全组

    有谁知道如何将您的cloudfront发行版添加到ELB的安全组入站规则中 我们为一个新站点设置了一个云前端发行版 该站点具有一组列入白名单的安全组规则 我看不到如何配置安全组以允许来自 cloudfront 发行版的请求 有任何想法吗 如
  • angular4 httpclient csrf不发送x-xsrf-token

    在 Angular 文档中 提到了 Angularhttpclient会自动发送cookie的值XSRF TOKEN在标题中X XSRF TOKEN的帖子请求 文档链接 https angular io guide http securit
  • Java 8 Stream foreach 中递增计数器

    我想增加一个counter这是一个AtomicInteger当我循环使用foreach public class ConstructorTest public static void main String args AtomicInteg
  • CodeIgniter:如何执行选择(不同字段名)MySQL 查询

    我正在尝试检索字段中所有唯一值的计数 SQL 示例 SELECT count distinct accessid FROM accesslog WHERE record 123 如何在 CodeIgniter 内部执行此类查询 我知道我可以
  • 致命 python 错误:initfsencoding:无法加载文件系统编解码器的原因可能是什么?

    我正在使用 Python 3 7 64 位 并安装CX 冻结用于将 py 转换为 exe 我使用此命令提示符将 Python 脚本转换为可执行文件 python filename build 它成功构建了可执行文件 但是当我执行 EXE 文
  • 初始化 Quartz 的最佳方法是什么?

    我不太确定初始化 Quartz 来安排 cron 作业的最佳方法是什么 我的环境是Tomcat 我有一项每天都需要触发的工作 我应该创建一个单独的 Servlet 来初始化 Quartz 并安排我的工作吗 我正在考虑创建一个 Servlet
  • Matplotlib:删除有关 matplotlib.use() 的警告

    在我使用的Python模块中matplotlib 我想确保当我通过以下方式在远程计算机上运行脚本时它也能工作ssh 所以我这样做 import matplotlib matplotlib use Agg from matplotlib ba
  • IntelliJ gradle 添加模块依赖

    使用 IntelliJ 2016 2 使用 Gradle 2 14 1 我有 2 个项目 每个项目都有自己的 build gradle 文件和单独的目录结构 myLib meant to be jarred and used by othe
  • 使用自定义 __setattr__ 和 __slots__ 进行 Python 属性查找

    我有一堂课使用 slots 并通过重写使它们几乎不可变 setattr 总是引发错误 class A slots a b x def init self a b object setattr self a a object setattr
  • 如何制作堆积条形图的动画?

    我正在尝试在四个堆叠条形图之间进行转换 输出并不完全符合我的预期 我无法确定这是否是我的代码中的错误 或者是否是我的代码中的错误gganimateR 包 这是我使用的数据框 df lt structure list name c varia
  • Jetpack 导航动画完整监听器

    当新的导航事件发生时 我尝试使用 Jetpack 导航库获取回调完全的以更改状态栏颜色 到目前为止我已经找到了navController addOnDestinationChangedListener当有新导航时它会通知我starts但不是
  • 过滤 gremlin 结果

    我是 Gremlin 新手 我正在使用 Gremlin 3 0 2 和 Stardog 5 0 我编写此查询是为了找出 schema org 本体中两个实体之间的路径 下面是输出 gremlin gt g V hasLabel Canal
  • 我可以将 npm node_modules 目录放在我的项目之外吗

    我可以像 Maven 处理其依赖项一样将 node modules 目录放在项目之外吗 有点 这node modules目录实际上并不是npm但有一个特点node js Node js 如何使用node modules 当你需要一个模块时
  • 如何在 python 2.x 和 3.x 中直接打印到文本文件?

    而不是使用write Python 2 和 3 中写入文本文件的其他方法是什么 file open filename txt w file write some text 您可以使用print function 未来进口 http docs
  • IntelliJ 的 WindowBuilder 等效项? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Eclipse 有一个名为 WindowBuilder 的插件 IntelliJ 有等效的吗 IntelliJ 有它自己的 GUI 构建器
  • 如何使用Graph API获取用户的好友总数[JavaScript]

    在对 Facebook 的 Graph API v2 8 做了一些研究之后 我终于明白了如何使用JavaScript 我想要具体做的是 在用户登录我的应用程序后 他们会单击一个按钮来获取其好友总数 这是我尝试用来完成此操作的代码 HTML
  • 如何使用 DKIM 签署 Javamail

    有没有一个库或一种方法可以在没有外部库的情况下做到这一点 我使用 apache james 作为我的邮件服务器 目前发送电子邮件如下 public void sendMessage String to String subject Stri