首页 > 代码库 > Java邮件发送与屏幕截屏
Java邮件发送与屏幕截屏
前几天七夕情人节孤独寂寞的程序猿闲来没事,花了一两个小时写了个小Demo主要实现Java的Mail发送功能和桌面截屏功能。
* JavaMail开发需要类库 javamail API ,还需要下载 Java Activation Framework (jaf) ---- javamail API 依赖 jaf
不过在JDK6.0之后开发,只需要导入mail.jar---- rt.jar 提供javax.activation 开发包,但是JDK5.0 之前开发需要导入mail.jar和activation.jar
javax.mail.Message类---------代表邮件本身,可以认为用Messsage类构造一份邮件,不过开发中使用javax.mail.Session类----代表邮件。
2、Session 连接会话
3、Transport 发送邮件
首先让我们先看看Java sendMail邮件发送和桌面屏幕截屏功能是怎么实现的基础知识。
一、Java SendMail邮件发送
首先让我们来看看邮件发送的原理图:
JavaMail 是一套sun 提供开发邮件收发程序API,JavaMail编写程序就是邮件客户端程序(和outlook、foxmail功能类似)
* JavaMail开发需要类库 javamail API ,还需要下载 Java Activation Framework (jaf) ---- javamail API 依赖 jaf
不过在JDK6.0之后开发,只需要导入mail.jar---- rt.jar 提供javax.activation 开发包,但是JDK5.0 之前开发需要导入mail.jar和activation.jar
javax.mail.Message类---------代表邮件本身,可以认为用Messsage类构造一份邮件,不过开发中使用javax.mail.Session类----代表邮件。
javax.mail.Session 类 ----- 代表与服务器连接会话(简单理解连接)
JAVA MAIL 邮件收发四个核心类
1、Message 邮件2、Session 连接会话
3、Transport 发送邮件
4、Store 收取邮件
发送邮件编程
1、创建与邮件发送服务器连接Session(需要使用Properties类来设置配置与服务器连接的参数)
2、编写邮件内容 Message * 符合邮件内容格式RFC822文档 setFrom setRecipients setSubject setText 当然如果有图片或者附件那就要使用 MimeBodyPart和MimeMultipart这两个类了将几个部分组合在一起
3、使用Transport工具类 进行身份验证和发送邮件
原理和基础使用步骤讲完了就直接贴代码了
public class SendMail { public void sendMailDemo() throws Exception { Properties props = new Properties(); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.host", "smtp.qq.com"); props.setProperty("mail.smtp.auth", "true"); props.setProperty("mail.debug", "true"); Session session = Session.getDefaultInstance(props); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("xxxxxxxx@qq.com")); message.addRecipients(Message.RecipientType.TO, "xxxxxxxx@qq.com"); message.setSubject("这是来自Java程序员的诚挚问候,桌面截图"); // 文本部分 MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent("这是来自Java程序的诚挚问候!<img src=http://www.mamicode.com/'cid:image'>这是一张图片!",>
二、截屏功能实现
截屏比较简单就不一一详说了,当然我的这个截屏功能很简单,连界面神马的都没有,只是简单的截取一下当前屏幕到保存到磁盘中然后再通过send Mail直接发到邮箱,功能很简单,代码如下:
public class ScreenShot { public void screeShot(){ try { //获取电脑屏幕的大小 Toolkit tk=Toolkit.getDefaultToolkit(); Dimension ds=tk.getScreenSize(); int height=(int) ds.getHeight(); int width=(int) ds.getWidth(); //拷贝屏幕到一个BufferedImage对象bi中 Robot robot = new Robot(); BufferedImage bi=robot.createScreenCapture(new Rectangle(width, height)); //将bi对象写入图像文件中,并保存到磁盘上 ImageIO.write(bi, "jpg",new File("E:\\2.jpg")); } catch (IOException e) { e.printStackTrace(); } catch (AWTException e) { e.printStackTrace(); } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。