如何使用 JakartaMail 从共享电子邮件(或授权电子邮件)发送电子邮件

How send emails from shared email (or delegation email) with JakartaMail

我正在尝试使用 JakartaMail 从共享电子邮件(或授权电子邮件)发送电子邮件。我用谷歌搜索了一下,但只找到了如何阅读共享邮箱,没有找到如何从中发送电子邮件。

private Session getSession(Company company) {
    System.setProperty("https.protocols", "TLSv1.2,TLSv1.3");
    Properties properties = System.getProperties();
    properties.put("mail.smtp.host", host);
    properties.put("mail.smtp.port", port);
    properties.put("mail.smtp.starttls.enable", starttls);
    properties.put("mail.smtp.start-tls-enable", true);
    properties.put("mail.smtp.auth", auth);
    properties.put("mail.smtp.ssl.trust",trust);
    
    properties.put("mail.smtp.user", user);
    return Session.getInstance(properties, new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(user, password);
        }
    });

这是我的代码,用于让会话使用我的电子邮件帐户而不是共享帐户发送电子邮件。我该如何修复才能从共享电子邮件发送电子邮件?

您不会“从邮箱”发送电子邮件。您使用 From: 地址发送电子邮件。

您可以使用任何有效的电子邮件地址作为 From: 前提是您用于出站电子邮件的邮件服务器允许它。

那么什么是允许的?

这取决于您的出站电子邮件服务器的设置方式。

  • 有些可能允许您使用任何电子邮件地址。 (坏主意!)

  • 有些将允许您使用任何本地电子邮件地址(对于本地的某些定义)。

  • 有些只允许使用你的认证的电子邮件地址作为From:地址。

询问出站邮件服务器的管理员或查看其文档以了解规则/政策是什么。