oh-my-email

项目地址:biezhi/oh-my-email
简介:可能是最小的 Java 邮件发送库了
更多:作者   提 Bug   
标签:

或许是最小的 Java 邮件发送类库了。

Build Status codecov.io maven-central License

特性

  • 简洁的邮件发送 API
  • 支持自定义发件人昵称
  • 支持扩展邮件 Message
  • 支持抄送/HTML/附件
  • 支持异步发送
  • 支持邮件模板
  • 可能是代码量最小的库了,200 多行 😂 非常好维护

使用

maven 坐标

<dependency>
    <groupId>io.github.biezhi</groupId>
    <artifactId>oh-my-email</artifactId>
    <version>0.0.2</version>
</dependency>

举个栗子🌰

@Before
public void before() throws GeneralSecurityException {
    // 配置,一次即可
    OhMyEmail.config(SMTP_QQ(), "biezhi.me@qq.com", "your@password");
}

@Test
public void testSendText() throws MessagingException {
    OhMyEmail.subject("这是一封测试 TEXT 邮件")
            .from("王爵的 QQ 邮箱")
            .to("921293209@qq.com")
            .text("信件内容")
            .send();
}

@Test
public void testSendHtml() throws MessagingException {
    OhMyEmail.subject("这是一封测试 HTML 邮件")
            .from("王爵的 QQ 邮箱")
            .to("921293209@qq.com")
            .html("<h1 font=red>信件内容</h1>")
            .send();
}

@Test
public void testSendAttach() throws MessagingException {
    OhMyEmail.subject("这是一封测试附件邮件")
            .from("王爵的 QQ 邮箱")
            .to("921293209@qq.com")
            .html("<h1 font=red>信件内容</h1>")
            .attach(new File("/Users/biezhi/Downloads/hello.jpeg"), "测试图片.jpeg")
            .send();
}

@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", "admin@java-china.org");

    Writer writer = new StringWriter();
    compiledTemplate.evaluate(writer, context);

    String output = writer.toString();
    System.out.println(output);

    OhMyEmail.subject("这是一封测试 Pebble 模板邮件")
            .from("王爵的 QQ 邮箱")
            .to("921293209@qq.com")
            .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", "admin@java-china.org");
    context.put("url", "<a href='http://java-china.org'>https://java-china.org/active/asdkjajdasjdkaweoi</a>");

    StringWriter writer = new StringWriter();
    template.render(context, writer);
    String output = writer.toString();
    System.out.println(output);

    OhMyEmail.subject("这是一封测试 Jetx 模板邮件")
            .from("王爵的 QQ 邮箱")
            .to("921293209@qq.com")
            .html(output)
            .send();
}

邮件模版

<div>
    <p>亲爱的<b>{{ username }}</b>, 欢迎加入 JavaChina!</p>
      <p>当您收到这封信的时候,您已经可以正常登录了。</p>
      <p>请点击链接登录首页: <a href='http://www.baidu.com'>http://java-china.org/xxxxx</a></p>
      <p>如果您的 email 程序不支持链接点击,请将上面的地址拷贝至您的浏览器(如 IE)的地址栏进入。</p>
      <p>如果您还想申请管理员权限,可以联系管理员 {{ email }}</p>
      <p>我们对您产生的不便,深表歉意。</p>
      <p>希望您在 JavaChina 度过快乐的时光!</p>
      <p></p>
      <p>-----------------------</p>
      <p></p>
      <p>(这是一封自动产生的 email,请勿回复。)</p>
</div>

问题建议

随手点击下面广告,支持我维护本站吧
随手点击下面广告支持我免费维护吧
Android 开发经验分享
随手点击下面广告支持本站吧
 
Android 开发经验分享