java 发送邮件 大小,Java邮件发送与屏幕截屏

前几天七夕情人节孤独寂寞的程序猿闲来没事,花了一两个小时写了个小Demo主要实现Java的Mail发送功能和桌面截屏功能。

首先让我们先看看Java sendMail邮件发送和桌面屏幕截屏功能是怎么实现的基础知识。

一、Java  SendMail邮件发送

首先让我们来看看邮件发送的原理图:

8944da1ac9fdbeca16c0a0747b93c5e8.png

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("[email protected]"));

message.addRecipients(Message.RecipientType.TO, "[email protected]");

message.setSubject("这是来自Java程序员的诚挚问候,桌面截图");

// 文本部分

MimeBodyPart textPart = new MimeBodyPart();

textPart.setContent("这是来自Java程序的诚挚问候!这是一张图片!",

"text/html;charset=UTF-8");

// 内镶嵌图片部分

MimeBodyPart imagePart = new MimeBodyPart();

// 吧磁盘上的文件读到邮件中,借助jaf框架

DataHandler dh = new DataHandler(new FileDataSource("e:\\2.jpg"));

imagePart.setDataHandler(dh);

imagePart.setContentID("image");

// 将文本部分和图片部分合体

MimeMultipart mpart = new MimeMultipart();

mpart.addBodyPart(textPart);

mpart.addBodyPart(imagePart);

mpart.setSubType("related");

message.setContent(mpart);

message.saveChanges();

Transport transport=session.getTransport("smtp");

transport.connect("[email protected]", "xxxxxxxx");

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

transport.close();

}

}

二、截屏功能实现

截屏比较简单就不一一详说了,当然我的这个截屏功能很简单,连界面神马的都没有,只是简单的截取一下当前屏幕到保存到磁盘中然后再通过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();

}

}

}

原文:http://blog.csdn.net/itwuchen/article/details/38405005

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值