2015年11月22日 Java Coding 浏览(227) 收藏

云码网发激活账号邮件的Java源码

在java web项目中,通常会使用到发邮件的场景。例如:激活账号、找回密码、私信通知等。那么,java 是如何发送邮件的呢?

云码网发送邮件的java 源码如下:

import java.util.Date;
import javax.mail.internet.MimeUtility;
import org.apache.commons.mail.HtmlEmail;
import com.alibaba.fastjson.JSON;
import com.everycoding.commons.model.Smtp;

public class MailUtils {
    /**
     * noreply@everycoding.com 
     * @param to 收件人,支持批量发送
     * @param nickName 发送者昵称
     * @param subject 发送主题
     * @param content 发送内容
     * @return
     */
    public static boolean send(String[] to, String nickName, String subject, String content) {
        boolean flag = false;
        // 读取邮箱服务器地址、权限等信息。
        String emailSmtpConfig = SysConfigUtil.get("emailSmtpConfig");
        // 转成本地Smpt对象接收数据
        Smtp smtp = JSON.parseObject(emailSmtpConfig, Smtp.class);
        Date sendDate = new Date();
        HtmlEmail email = new HtmlEmail();
        email.setAuthentication(smtp.getUserName(), smtp.getPassword());
        email.setHostName(smtp.getMailServer());
        email.setCharset(smtp.getCharset() == null ? "UTF-8" : smtp.getCharset());
        email.setSubject(subject);
        try {
            String nick = MimeUtility.encodeText(nickName);
            email.setFrom(nick + " <" + smtp.getFrom() + ">");

            for (String toUser : to) {// 添加收件人地址
                email.addTo(toUser);
            }
            email.setHtmlMsg(content);
            email.setSentDate(sendDate);
            email.send();
            flag = true;
        } catch (Exception ex) {
            ex.printStackTrace();
            return flag;
        }
        return flag;
    }
}


需要使用的jar包依赖如下:其中commons-email会自动依赖拉入mail-1.4.jar包

<dependency>
     <groupId>commons-email</groupId>
     <artifactId>commons-email</artifactId>
     <version>1.1</version>
</dependency>

代码核心部分已完毕。


当用户注册完账号后,我们只需要准备一个邮件模版,发送激活连接到用户邮箱即可。

赞一下 0 人赞了本文