Description
May be the smallest send mail library
oh-my-email alternatives and similar libraries
Based on the "Template Engine" category.
Alternatively, view oh-my-email alternatives based on common mentions on social networks and blogs.
-
Thymeleaf
Thymeleaf is a modern server-side Java template engine for both web and standalone environments. -
Handlebars.java
Logic-less and semantic Mustache templates with Java
WorkOS - The modern identity platform for B2B SaaS
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of oh-my-email or a related project?
README
oh-my-email
或许是最小的 Java 邮件发送类库了。
特性
- 简洁的邮件发送API
- 支持自定义发件人昵称
- 支持扩展邮件Message
- 支持抄送/HTML/附件
- 支持异步发送
- 支持邮件模板
- 可能是代码量最小的库了,200多行 😂 非常好维护
使用
maven坐标
<dependency>
<groupId>io.github.biezhi</groupId>
<artifactId>oh-my-email</artifactId>
<version>0.0.4</version>
</dependency>
举个栗子🌰
@Before
public void before() throws GeneralSecurityException {
// 配置,一次即可
OhMyEmail.config(SMTP_QQ(), "[email protected]", "your@password");
}
@Test
public void testSendText() throws MessagingException {
OhMyEmail.subject("这是一封测试TEXT邮件")
.from("小姐姐的邮箱")
.to("[email protected]")
.text("信件内容")
.send();
}
@Test
public void testSendHtml() throws MessagingException {
OhMyEmail.subject("这是一封测试HTML邮件")
.from("小姐姐的邮箱")
.to("[email protected]")
.html("<h1 font=red>信件内容</h1>")
.send();
}
@Test
public void testSendAttach() throws MessagingException {
OhMyEmail.subject("这是一封测试附件邮件")
.from("小姐姐的邮箱")
.to("[email protected]")
.html("<h1 font=red>信件内容</h1>")
.attach(new File("/Users/biezhi/Downloads/hello.jpeg"), "测试图片.jpeg")
.send();
}
@Test
public void testSendAttachURL() throws MessagingException {
try {
OhMyEmail.subject("这是一封测试网络资源作为附件的邮件")
.from("小姐姐的邮箱")
.to("[email protected]")
.html("<h1 font=red>信件内容</h1>")
.attachURL(new URL("https://avatars1.githubusercontent.com/u/2784452?s=40&v=4"), "测试图片.jpeg")
.send();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
@Test
public void testPebble() throws IOException, PebbleException, MessagingException {
PebbleEngine engine = new PebbleEngine.Builder().build();
PebbleTemplate compiledTemplate = engine.getTemplate("register.html");
Map<String, Object> context = new HashMap<String, Object>();
context.put("username", "biezhi");
context.put("email", "[email protected]");
Writer writer = new StringWriter();
compiledTemplate.evaluate(writer, context);
String output = writer.toString();
System.out.println(output);
OhMyEmail.subject("这是一封测试Pebble模板邮件")
.from("小姐姐的邮箱")
.to("[email protected]")
.html(output)
.send();
}
@Test
public void testJetx() throws IOException, PebbleException, MessagingException {
JetEngine engine = JetEngine.create();
JetTemplate template = engine.getTemplate("/register.jetx");
Map<String, Object> context = new HashMap<String, Object>();
context.put("username", "biezhi");
context.put("email", "[email protected]");
context.put("url", "<a href='http://biezhi.me'>https://biezhi.me/active/asdkjajdasjdkaweoi</a>");
StringWriter writer = new StringWriter();
template.render(context, writer);
String output = writer.toString();
System.out.println(output);
OhMyEmail.subject("这是一封测试Jetx模板邮件")
.from("小姐姐的邮箱")
.to("[email protected]")
.html(output)
.send();
}
邮件模版
<div>
<p>亲爱的<b>{{ username }}</b>, 欢迎加入 biezhi !</p>
<p>当您收到这封信的时候,您已经可以正常登录了。</p>
<p>请点击链接登录首页: <a href='http://www.baidu.com'>http://biezhi.me/xxxxx</a></p>
<p>如果您的 email 程序不支持链接点击,请将上面的地址拷贝至您的浏览器(如IE)的地址栏进入。</p>
<p>如果您还想申请管理员权限,可以联系管理员 {{ email }}</p>
<p>我们对您产生的不便,深表歉意。</p>
<p>希望您在 biezhi 系统度过快乐的时光!</p>
<p></p>
<p>-----------------------</p>
<p></p>
<p>(这是一封自动产生的email,请勿回复。)</p>
</div>
问题建议
- 我的邮箱:
biezhi.me#gmail.com
*Note that all licence references and agreements mentioned in the oh-my-email README section above
are relevant to that project's source code only.