如何在 Java 中发送电子邮件?

Posted

技术标签:

【中文标题】如何在 Java 中发送电子邮件?【英文标题】:How do I send emails in Java? 【发布时间】:2011-01-29 11:05:27 【问题描述】:

嘿。我目前想用 Java 开发一个发送电子邮件的简单程序。不仅仅是几封电子邮件,实际上还有很多 (10k+) 顺便说一句,我有一个订阅者列表,大家都同意。

无论如何,我无法通过 Gmail 或类似方式发送这些电子邮件 - 他们不允许发送那么多电子邮件。所以基本问题是:如何通过将实际的发送计算机设置为电子邮件服务器来发送电子邮件?

我确定我应该使用一些库,我听说过 ChillKat 或类似的东西。

谁能解释/帮助我?将不胜感激。

【问题讨论】:

人们会好奇“发送 10K+ 邮件的小程序”的目的是什么。我能想到一些令人不快的原因,但没有合理的原因...... 发送 10K 邮件不是问题 - 但发送 10K 邮件肯定是。来自 SMTP 服务器的大量邮件,没有任何邮件传递信誉,很可能会被视为垃圾邮件。您应该查看 sendgrid.com、authsmtp.com、smtp.com 等提供商 ... M. Jessup,我能想到很多合法的用途。我有一个网站,人们可以在那里注册我的时事通讯。我想给每个人发邮件,但是发送 10-50k 邮件的普通服务对我来说太贵了,所以我宁愿自己编码,如果不仅是为了省钱,也是为了了解它是如何工作的。 【参考方案1】: 库 - commons-email,建立在更难使用的 JavaMail 之上 服务器 James - 基于java Postfix - 适用于 unix/linux (howto) 更多 - 有很多 smtp 服务器。每个都需要一些重要的配置,然后才能在生产中使用它。最好向管理员求助。

【讨论】:

您可能应该添加 Java Mail API。虽然 commons-email 是建立在它之上的,但它当然值得一提。【参考方案2】:

James 是一个非常强大的基于 Java 的电子邮件服务器,您可以使用 JavaMail API。此外,James 集成了mailet API,这对于改进邮件服务器的功能非常有用。 您可以将其配置为在 gmail 上设置网关,轻松更改配置文件。 (见this topic)

你可以在这里找到关于 James 和 mailet 的非常好的教程:Working with James

【讨论】:

非常感谢您提供的信息,我会调查的。我有点想通过 gmail 发送电子邮件可能更容易,即使他们每天只允许 500 封电子邮件,我可以只使用 100 个 gmail 帐户吗?

以上是关于如何在 Java 中发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 spring web-flux 中发送电子邮件响应式

如何在android中发送电子邮件[重复]

如何在 VC++ 中发送电子邮件?

JAVA中发送电子邮件的方法

如何在 Android 中发送电子邮件? [复制]

无法在 MFP 7.0 Java 适配器中发送电子邮件 JavaMail API