如何使用Java Mail发邮件(包括单发和群发),含演示代码下载 您所在的位置:网站首页 php邮箱发送源码 如何使用Java Mail发邮件(包括单发和群发),含演示代码下载

如何使用Java Mail发邮件(包括单发和群发),含演示代码下载

2023-06-19 04:41| 来源: 网络整理| 查看: 265

文章目录 背景什么是JavaMail 前置条件申请开通邮局服务(QQ为例) Java工程下载依赖组件核心代码 发送结果总结

背景

在我们做业务系统开发时时,经常会用到 邮件发送的场景,如 通过邮件通知给注册用户有关注册码的内容,或者 管理的某些设备有告警了,需要邮件通知相关维护人员及时处理相关设备,还有 使用的会员服务已经到期了,用邮件通知给用户等等。 在java 世界里如何发邮件,有很多种方法,下面将围绕 java mail 来做功能的实现。

什么是JavaMail

JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。

前置条件

要想通过 java 代码发送邮件,首先需要开通你邮箱的邮局服务,下面以QQ 邮箱为例,说一下开通步骤。

申请开通邮局服务(QQ为例)

进入QQ邮箱–》设置–》POP3/IMAP --》开启服务 开启服务

使用手机,发送开通短信,开启服务 密保短信

开通成功,记下授权码 授权码 获得授权码,把它拷贝出来,后面的JAVA代码需要用到这个授权码。

Java工程 下载依赖组件

我们将使用 JavaMail 进行邮件方面的处理, Maven的依赖配置如下:

com.sun.mail javax.mail 1.6.2 核心代码 public class MailUtil { private static final Logger LOG = LoggerFactory.getLogger(MailUtil.class); /** * 发送邮件 * @param user * 发件人邮箱 * @param password * 邮箱授权码 * @param host * host * @param from * 发件人 * @param toArray * 接收者邮箱数组 * @param subject * 邮件主题 * @param content * 邮件内容 * @return CommonProcResult.code = 0 表示成功; * CommonProcResult.code != 0 表示失败,失败原因可以看 CommonProcResult.desc */ public CommonProcResult sendMail(String user, String password, String host, String from, String[] toArray, String subject, String content) { CommonProcResult ret = CommonProcResultFactroy.makeResultForInnerError("未实现."); try { if (null != toArray && toArray.length > 0) { Properties props = System.getProperties(); // 选择服务类型 props.put("mail.smtp.host", host); // 设置服务器验证 props.put("mail.smtp.auth", "true"); // 设置传输协议 props.put("mail.transport.protocol", "smtp"); MailAuthenticator auth = new MailAuthenticator(user, password); Session session = Session.getInstance(props, auth); //session.setDebug(true); session.setDebug(false); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); //邮件接收方 int len= toArray.length; InternetAddress address[]=new InternetAddress[len]; for (int i = 0; i ret = CommonProcResultFactroy.makeResultForInvalidParamValue(" toArray"); } } catch (Exception e) { LOG.error("An exception has been occured when send email. Exception=" + e.getMessage()); ret = CommonProcResultFactroy.makeResultForInnerException(e.getMessage()); e.printStackTrace(); } return ret; } //测试代码 public static void main(String[] args) { MailUtil operation = new MailUtil(); String user = "发送人的邮箱"; //如[email protected] String password = "邮箱的授权密码"; String host = "邮箱主机";//如smtp.qq.com String from = "发件人的邮箱"; //如[email protected] String to = "收件人的邮箱"; //支持群发,可以写多个收件邮箱,如 [email protected];[email protected] String subject = "java 发送邮件测试"; //邮箱内容 StringBuffer sb = new StringBuffer(); String yzm = Long.toString(System.currentTimeMillis()); sb.append("" + "温馨提示:" + "欢迎xx系统,您的注册码为:" + yzm + "本邮件由系统自动发出,请勿回复。感谢您的使用。xx网络科技公司" + ""); try { String[] toArray = to.split(";"); CommonProcResult ret = operation.sendMail(user, password, host, from, toArray, subject, sb.toString()); System.out.println("ret code=" + ret.getCode() + ", ret desc=" + ret.getDesc()); } catch (Exception e) { e.printStackTrace(); } } 发送结果

发送结果 登录收件人的邮箱,里可看到 测试代码发出的邮件收到了。

总结

使用JavaMail可以很方便的在Java客户端实现 发邮件的功能,另外很好的实现了JavaMail API的框架还有James、Spring Mail。

需要完整演示代码的可点击下方。 完整程序代码下载 注意:程序代码需要代入你的邮箱信息才能正确工作。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有