10个Java发邮件的工具类封装模板


【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务。 查看价格
【AokSend邮件API】:触发式邮件API,15元/万封,99%送达率。 查看价格
【烽火邮箱】:新人领取免费域名邮箱,可用作企业邮箱公司邮箱。 查看价格
10个Java发邮件的工具类封装模板
在Java开发中,发送邮件是一个非常常见的需求。无论是企业内部的沟通,还是与客户、合作伙伴的联系,发送邮件都是一个高效且便捷的方式。然而,手动编写邮件内容和调用发送接口通常会占用大量时间,尤其是在需要频繁发送邮件的情况下。因此,开发一个高效的邮件发送工具类封装模板 become 一个非常实用的选择。
引言
随着Java开发项目的复杂度不断增加,发送邮件的需求也在不断增加。为了满足这一需求,我们可以编写一个Java工具类,将发送邮件的功能封装起来,从而提高开发效率。本文将介绍10个Java发邮件的工具类封装模板,帮助开发者快速实现邮件发送功能。
工具类封装模板的原理
在Java中,工具类封装模板是一种将常用功能集中到一个类中的方式,从而提高代码的复用性和可维护性。对于发邮件功能的封装,我们通常需要以下功能:
- 邮件配置:包括收件人地址、主题、正文等。
- 邮件发送:调用邮件服务器,如SMTP、POP3等。
- 错误处理:在发送过程中如果出现错误,能够自动捕获并报错。
- 优化性能:减少邮件发送对网络资源的占用。
通过将这些功能集中到一个工具类中,我们可以避免在每次发送邮件时重复编写代码,从而提高开发效率。
工具类封装模板的实现
工具类1:EmailSender
EmailSender 是一个经典的Java邮件发送工具类,它封装了邮件发送的基本功能。以下是如何使用这个工具类的步骤:
添加依赖:
mvn add:mvn -Dname=EmailSender -Dversion=1.1.1 -Djar
使用示例代码:
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
public class EmailSender {private Sendmail sendMail;private Date lastSentDate;
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
}
### 工具类2:EmailSenderAutoCloseEmailSenderAutoClose 是一个改进版的邮件发送工具类,它在发送邮件后自动关闭连接。以下是使用方法:1. 添加依赖:```bashmvn add:mvn -Dname=EmailSenderAutoClose -Dversion=1.2.2 -Djar
- 使用示例代码:
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSenderAutoClose;import java.util.Date;
public class EmailSenderAutoClose {private Sendmail sendMail;private Date lastSentDate;
public EmailSenderAutoClose() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); sendMail.close(); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
}
### 工具类3:Email(Sender)Email(Sender) 是一个基于Spring Boot 的邮件发送工具类,它封装了多种邮件发送功能,包括自动回复、批量发送等。以下是使用方法:1. 添加依赖:```bashmvn add:mvn -Dname=Email(Sender) -Dversion=1.2.3 -Djar
- 使用示例代码:
import com.springframework.beans.factory.annotation.Autowired;import com.springframework.boot.autoconfigure.web.servlet.AutoConfigure;import com.springframework.boot.autoconfigure.web.servlet.MockMvc;import com.springframework.boot.context.SpringBootTest;import com.springframework.context.annotation.SpringBootTest;import com.springframework BootStrut.beans.SNELoop;import com.springframework BootStrut.common.Mail;
public class EmailExample {@AutoConfigure@AutoConfigure(minItems={1})@AutoConfigurepublic class EmailAutoConfig {@Autowiredprivate EmailSenderAutoClose emailSender;
@AutoConfigure public static final Map<String, Object> defaultConfig = new HashMap<>(); defaultConfig.put("to", " recipient@example.com"); defaultConfig.put("subject", "邮件主题"); defaultConfig.put("body", "邮件正文");}@RestControllerpublic class EmailController { @GetMapping("/send") @GetMapping("/send") public ResponseEntity send(String subject, String body) { return new ResponseEntity().响应(EmailAutoClose.sendMail(subject, body, get("to").toArray(new String[0]))); }}
}
### 工具类4:SMTPClientSMTPClient 是一个基于PHP 的邮件发送工具类,但也可以通过Java调用。以下是使用方法:1. 添加依赖:```bashmvn add:mvn -Dname=SMTPClient -Dversion=12.0.0 -Djar
- 使用示例代码:
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
0
public class SmtpClient {private Stp;private boolean initialized = false;
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
1
}
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
2
- 使用示例代码:
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
3
public class Pop3Client {private Stp;private Date lastSentDate;
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
4
}
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
5
- 使用示例代码:
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
6
public class JMail {private JMail sendMail;private Date lastSentDate;
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
7
}
🔔🔔🔔 【烽火邮箱】:烽火邮箱是一款简洁高效的企业邮箱平台,新客户赠送免费企业邮箱,一个起卖、按月付费(低至9.9元);支持别名邮箱及群组邮箱,支持定制无限邮箱。高权重纯净IP池,系统自带反垃圾机制。
立即查看 >> :企业邮箱价格
【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务,专业研发定制邮件营销系统及邮件群发解决方案!蜂邮自研产品线主要分为标准版、外贸版、企业版、定制版,及邮件API邮件SMTP接口服务。
立即查看 >> :邮件发送价格
【AokSend邮件API】:专注触发式邮件API发送服务。15元/万封,发送验证码邮件、忘记密码邮件、通知告警邮件等,不限速。综合送达率99%、进箱率98%。触发邮件也叫事务性邮件或推送邮件,包含:验证码邮件、重置密码邮件、余额提醒邮件、会员到期邮件、账号认证邮件等!
立即查看 >> :邮件发送价格
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
8
- 使用示例代码:
import com.sun.mail.Mail;import com.sun.mail.MailException;import com.sun.mail.SENDER;import com.sun.mail.SENDERSetting;import com.sun.mail.sendmail.EmailSender;import com.sun.mail.sendmail.sendmail.Sendmail;import java.util.Date;
9
public class EmailManagerExample {@Autowiredprivate EmailManager emailManager;
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
0
}
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
1
}
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
2
- 使用示例代码:
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
3
public class EmailSenderAutoReply {private Sendmail sendMail;private Date lastSentDate;
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
4
}
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
5
- 使用示例代码:
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
6
public class EmailAutoReplyExample {@Autowiredprivate EmailAutoReply emailAutoReply;
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
0
}
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
8
- 使用示例代码:
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
9
public class EmailAutoReplyExample {@Autowiredprivate EmailAutoReply emailAutoReply;
public EmailSender() { sendMail = Sendmail.getSendmail(); lastSentDate = new Date();}public boolean sendMail(String subject, String body, String[] to) { try { Mail mail = new Mail(); mail.setVersion("1.0"); mail.setSubject(subject); mail.setBody(body); mail.setFrom(SENDER); Date date = lastSentDate; mail.setDate(date); sendMail.send(mail); return true; } catch (MAIL很差错 e) { // 报告错误 System.out.println("发送邮件失败:" + e); return false; }}
0
}
### 工具类2:EmailSenderAutoCloseEmailSenderAutoClose 是一个改进版的邮件发送工具类,它在发送邮件后自动关闭连接。以下是使用方法:1. 添加依赖:```bashmvn add:mvn -Dname=EmailSenderAutoClose -Dversion=1.2.2 -Djar
1


【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务。 查看价格
【AokSend邮件API】:触发式邮件API,15元/万封,99%送达率。 查看价格
【烽火邮箱】:新人领取免费域名邮箱,可用作企业邮箱公司邮箱。 查看价格