java web邮件_Java web 实现简单的邮箱发送邮件

在web中完成邮件的发送:

1、导包:需要pom.xml中导入所需依赖包(mail 1.4.7    activation 1.1.1)

javax.mail

mail

1.4.7

javax.activation

activation

1.1.1

2、创建Email信息封装类:(属性的get/set等方法略)

packagecom.example.demo.util;/***@author* @DESC: 用于封装用户邮箱信息

* @create 2021/1/10 13:44*/

public classUserMailInfo {/*** 发送给email这个邮箱*/

privateString email;/*** 邮件标题*/

privateString title;/*** 邮件文本内容*/

privateString context;publicUserMailInfo(String email,String title,String context) {this.email =email;this.context =context;this.title =title;

}publicUserMailInfo(){

}}

3、创建邮件发送的工具类:(我继承了Thread类用于每一封邮件都创建一个线程来进行邮件的发送)

packagecom.example.demo.util;import javax.mail.*;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeMessage;importjava.util.Properties;/***@author* @DESC: 邮件发送工具类

* @create 2021/1/10 13:46*/

public class SendMail extendsThread{private static final String SEND_EMAIL = "用于发送邮件的邮箱";private static final String SEND_USERNAME = "与上面的邮箱一致";private static final String SEND_PASSWORD = "一般为邮箱SMTP服务的授权码";private static final String HOST = "邮箱服务器地址(可在邮箱查看各自邮箱的服务器地址)";privateUserMailInfo mailInfo;publicSendMail(UserMailInfo mailInfo){this.mailInfo =mailInfo;

}

@Overridepublic voidrun() {

sendMail();

}/*** 邮箱服务器的连接和发送*/

private voidsendMail(){try{

Properties prop= newProperties();

prop.setProperty("mail.host",HOST);

prop.setProperty("mail.transport.protocol","smtp");

prop.setProperty("mail.smtp.auth","true");

Session session=Session.getInstance(prop);//日志输出邮件发送详情

session.setDebug(true);

Transport ts=session.getTransport();

ts.connect(HOST,SEND_USERNAME,SEND_PASSWORD);

Message message=createMail(session);

ts.sendMessage(message,message.getAllRecipients());

ts.close();

}catch(Exception e){

//异常处理

e.printStackTrace();

}

}/*** 封装message属性

*@paramsession session

*@returnMessage message

*@throwsException 异常抛出*/

private Message createMail(Session session) throwsException{

MimeMessage message= newMimeMessage(session);

message.setFrom(newInternetAddress(SEND_EMAIL));

message.setRecipient(Message.RecipientType.TO,newInternetAddress(mailInfo.getEmail()));

message.setSubject(mailInfo.getTitle());

message.setContent(mailInfo.getContext(),"text/html;charset=utf-8");

message.saveChanges();returnmessage;

}

}

4、调用邮件发送的工具类方法(在适当的业务逻辑处调用)

UserMailInfo mailInfo = new UserMailInfo("104******@qq.com","测试邮件","邮件发送成功");

SendMail sendMail = new SendMail(mailInfo);

sendMail.start();

5、注意:1、有的邮箱服务器配置了SSL加密则有一个端口号参数,则需要在对应的位置进行修改。

2、用什么邮箱发送邮箱那么就去找对应的邮箱服务器地址,以及开启对应的相关服务。

3、本文只是做一个简单邮箱发送的记录,用于方便查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值