Giter VIP home page Giter VIP logo

oh-my-email's Introduction

oh-my-email

或许是最小的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.3</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("王爵的QQ邮箱")
            .to("[email protected]")
            .text("信件内容")
            .send();
}

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

@Test
public void testSendAttach() throws MessagingException {
    OhMyEmail.subject("这是一封测试附件邮件")
            .from("王爵的QQ邮箱")
            .to("[email protected]")
            .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", "[email protected]");

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

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

    OhMyEmail.subject("这是一封测试Pebble模板邮件")
            .from("王爵的QQ邮箱")
            .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://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("[email protected]")
            .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>

问题建议

oh-my-email's People

Contributors

hellokaton avatar springstudent avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.