用程序获取商品售价变化,买到最低价的东西(三)
承接上文,
我们通过jsoup实现了
京东上商品售价获取(一),
监控变化(二),
今天我们来聊一聊java发送邮件。
平时都是用的QQ邮箱网页版发的邮件,写好标题,正文内容,然后点一个发送就可以了。 但实际上我们还没有发给对方账户,我们只是发给了邮件服务器:SMTP服务器, POP3服务器,IMAP服务器。SMTP管‘发’, POP3/IMAP管‘收’。我们是发给了腾讯的SMTP服务器 。然后再由SMTP服务器
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。
增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。
我们只需要做好第一部把邮件发到腾讯邮件服务器就可以了,不用管后面的怎么发,代码思路如下
1.添加pom依赖
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.0</version>
</dependency>
2.去邮箱里面去设置开启smtp
参考网址:https://cloud.tencent.com/developer/article/1137134
3.代码调用如下:
public static void sendSimpleBySMTP(IS_MailConfig config,String subject , String text){
Properties props = new Properties();
props.put("mail.smtp.host", config.getHost());
Session session = Session.getInstance(props, null);
// 创建一个信息
MimeMessage msg = new MimeMessage(session);
try {
//设置发件人的信息
msg.setFrom(new InternetAddress(config.getUserAddr()));
//设置收件人信息
for (InternetAddress address : config.getInternetAddresses()) {
msg.addRecipient(Message.RecipientType.TO,address);
}
//设置邮件主题
msg.setSubject(subject);
msg.setSentDate(new Date());
//设置文件正文
msg.setText(text);
} catch (MessagingException e) {
e.printStackTrace();
}
try {
SMTPTransport t = (SMTPTransport)session.getTransport("smtp");
//host: SMTP服务器host , port , SMTP服务器端口,useraddr:登录邮箱地址,password:登录密码
t.connect(config.getHost(),config.getPort(),config.getUserAddr(),config.getPassword());
t.sendMessage(msg,msg.getAllRecipients());
} catch (MessagingException e) {
e.printStackTrace();
}
}
代码github地址:
https://github.com/weixiaodexiaoxiaodao/common-utils/blob/master/utils-base/src/main/java/tech/ideashare/utils/is_mail/IS_MailUtils.java
有兴趣的小伙伴可以自己尝试下哦
文字:微笑的小小刀
排版:花音