首先需要依赖两个jar包
mail.jar (pom中配置它即可) 下载地址:http://download.csdn.net/detail/cuiran/4300419
activation.jar (Maven会自动引入) 下载地址:http://download.csdn.net/detail/cuiran/4300421
然后导入工程中:
代码如下:
- /**
- * Email.java
- * 版权所有(C) 2012
- * 创建:cuiran 2012-05-11 12:52:41
- */
- package com.wpn.email.test;
- import java.util.Properties;
- import javax.activation.DataHandler;
- import javax.activation.FileDataSource;
- import javax.mail.*;
- import javax.mail.internet.*;
- /**
- * 本程序用java来实现Email的发送,所用到的协议为:SMTP,端口号为25;<br>
- * 方法:用Socket进行实现,打开客户端的Socket,并连接上服务器:<br>
- * 如:Socket sockClient = new Socket("smtp.qq.com",23);<br>
- * 这表示发件方连接的是QQ邮箱的服务器,端口号为23
- * @author cuiran
- * @version 1.0.0
- */
- public class Email
- {
- /**
- * 整个MIME邮件对象
- */
- private MimeMessage mimeMsg;
- /**
- * 专门用来发送邮件的Session会话
- */
- private Session session;
- /**
- * 封装邮件发送时的一些配置信息的一个属性对象
- */
- private Properties props;
- /**
- * 发件人的用户名
- */
- private String username;
- /**
- * 发件人的密码
- */
- private String password;
- /**
- * 用来实现附件添加的组件
- */
- private Multipart mp;
- /**
- * 发送参数初始化,有的服务器不需要用户验证,所以这里对用户名和密码进行初始化""
- *
- * @param smtp
- * SMTP服务器的地址,比如要用QQ邮箱,哪么应为:"smtp.qq.com",163为:"smtp.163.com"
- */
- public Email(String smtp)
- {
- username = "";
- password = "";
- // 设置邮件服务器
- setSmtpHost(smtp);
- // 创建邮件
- createMimeMessage();
- }
- /**
- * 设置发送邮件的主机(JavaMail需要Properties来创建一个session对象。
- * 它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机);
- *
- * @param hostName
- */
- public void setSmtpHost(String hostName)
- {
- System.out.println("设置系统属性:mail.smtp.host = " + hostName);
- if (props == null)
- props = System.getProperties();
- props.put("mail.smtp.host", hostName);
- }
- /**
- * (这个Session类代表JavaMail 中的一个邮件session. 每一个基于
- * JavaMail的应用程序至少有一个session但是可以有任意多的session。 在这个例子中,
- * Session对象需要知道用来处理邮件的SMTP 服务器。
- */
- public boolean createMimeMessage()
- {
- try
- {
- System.out.println("准备获取邮件会话对象!");
- // 用props对象来创建并初始化session对象
- session = Session.getDefaultInstance(props, null);
- }
- catch (Exception e)
- {
- System.err.println("获取邮件会话对象时发生错误!" + e);
- return false;
- }
- System.out.println("准备创建MIME邮件对象!");
- try
- {
- // 用session对象来创建并初始化邮件对象
- mimeMsg = new MimeMessage(session);
- // 生成附件组件的实例
- mp = new MimeMultipart();
- }
- catch (Exception e)
- {
- System.err.println("创建MIME邮件对象失败!" + e);
- return false;
- }
- return true;
- }
- /**
- * 设置SMTP的身份认证
- */
- public void setNeedAuth(boolean need)
- {
- System.out.println("设置smtp身份认证:mail.smtp.auth = " + need);
- if (props == null)
- {
- props = System.getProperties();
- }
- if (need)
- props.put("mail.smtp.auth", "true");
- else
- props.put("mail.smtp.auth", "false");
- }
- /**
- * 进行用户身份验证时,设置用户名和密码
- */
- public void setNamePass(String name, String pass)
- {
- System.out.println("程序得到用户名与密码");
- username = name;
- password = pass;
- }
- /**
- * 设置邮件主题
- *
- * @param mailSubject
- * @return
- */
- public boolean setSubject(String mailSubject)
- {
- System.out.println("设置邮件主题!");
- try
- {
- mimeMsg.setSubject(mailSubject);
- }
- catch (Exception e)
- {
- System.err.println("设置邮件主题发生错误!");
- return false;
- }
- return true;
- }
- /**
- * 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8
- *
- * @param mailBody
- * @return
- */
- public boolean setBody(String mailBody)
- {
- try
- {
- System.out.println("设置邮件体格式");
- BodyPart bp = new MimeBodyPart();
- bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>" + mailBody,
- "text/html;charset=UTF-8");
- // 在组件上添加邮件文本
- mp.addBodyPart(bp);
- }
- catch (Exception e)
- {
- System.err.println("设置邮件正文时发生错误!" + e);
- return false;
- }
- return true;
- }
- /**
- * 增加发送附件
- *
- * @param filename
- * 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常
- * @return
- */
- public boolean addFileAffix(String filename)
- {
- System.out.println("增加邮件附件:" + filename);
- try
- {
- BodyPart bp = new MimeBodyPart();
- FileDataSource fileds = new FileDataSource(filename);
- bp.setDataHandler(new DataHandler(fileds));
- // 发送的附件前加上一个用户名的前缀
- bp.setFileName(fileds.getName());
- // 添加附件
- mp.addBodyPart(bp);
- }
- catch (Exception e)
- {
- System.err.println("增加邮件附件:" + filename + "发生错误!" + e);
- return false;
- }
- return true;
- }
- /**
- * 设置发件人地址
- *
- * @param from
- * 发件人地址
- * @return
- */
- public boolean setFrom(String from)
- {
- System.out.println("设置发信人!");
- try
- {
- mimeMsg.setFrom(new InternetAddress(from));
- }
- catch (Exception e)
- {
- return false;
- }
- return true;
- }
- /**
- * 设置收件人地址
- *
- * @param to
- * 收件人的地址
- * @return
- */
- public boolean setTo(String to)
- {
- System.out.println("设置收信人");
- if (to == null)
- return false;
- try
- {
- mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO, InternetAddress.parse(to));
- }
- catch (Exception e)
- {
- return false;
- }
- return true;
- }
- /**
- * 发送附件
- *
- * @param copyto
- * @return
- */
- public boolean setCopyTo(String copyto)
- {
- System.out.println("发送附件到");
- if (copyto == null)
- return false;
- try
- {
- mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC, InternetAddress.parse(copyto));
- }
- catch (Exception e)
- {
- return false;
- }
- return true;
- }
- /**
- * 发送邮件
- *
- * @return
- */
- public boolean sendout()
- {
- try
- {
- mimeMsg.setContent(mp);
- mimeMsg.saveChanges();
- System.out.println("正在发送邮件....");
- Session mailSession = Session.getInstance(props, null);
- Transport transport = mailSession.getTransport("smtp");
- // 真正的连接邮件服务器并进行身份验证
- transport.connect((String) props.get("mail.smtp.host"), username, password);
- // 发送邮件
- transport.sendMessage(mimeMsg, mimeMsg.getRecipients(javax.mail.Message.RecipientType.TO));
- System.out.println("发送邮件成功!");
- transport.close();
- }
- catch (Exception e)
- {
- System.err.println("邮件发送失败!" + e.getMessage());
- e.printStackTrace();
- return false;
- }
- return true;
- }
- public static void main(String[] args)
- {
- /**
- *
- *************切切注意********
- *
- *注意 用此程序发邮件必须邮箱支持smtp服务 在2006年以后申请的163邮箱是不支持的
- *我知道sina邮箱 sohu邮箱 qq邮箱支持 但是sina和qq邮箱需要手工设置开启此功能
- *所以在测试时最好使用这三个邮箱
- *sina邮箱的smtp设置方法如下
- *登录sina邮箱 依次点击 邮箱设置--->帐户--->POP/SMTP设置 将开启复选框选中 然后保存
- *
- *************切切注意********
- */
- Email themail = new Email("smtp.163.com");//这里以新浪邮箱为例子
- String mailbody = "<a href='http://www.wphtu.ah.cn/' target='_blank'>芜湖职业技术学院</a>发送成功了哦";//邮件正文
- themail.setNeedAuth(true);
- themail.setSubject("JAVA发邮件的测试");//邮件主题
- themail.setBody(mailbody);//邮件正文
- themail.setTo("115621060@qq.com");//收件人地址
- themail.setFrom("cuiran2001@163.com");//发件人地址
- themail.addFileAffix("F:/download/email.rar");// 附件文件路径,例如:C:/222.jpg,*注;"/"的写法; 如果没有可以不写
- themail.setNamePass("cuiran2001@163.com", "****");//发件人地址和密码 **改为相应邮箱密码
- themail.sendout();
- }
- }
相关推荐
在你提到的“java发送电子邮件jar包和实例”中,很可能包含的是JavaMail API的jar文件以及两个示例代码,帮助开发者理解如何使用API来发送邮件。 JavaMail API主要由以下组件组成: 1. javax.mail-api.jar:这是...
以下是使用Java发送电子邮件的基本步骤: 1. **建立SMTP连接**:创建一个`Socket`对象并连接到SMTP服务器,通常默认端口为25,SSL/TLS加密时可能为465或587。 2. **身份验证**:与SMTP服务器进行对话,发送登录...
本文将详细讲解如何使用Java发送电子邮件,包括所需的库、基本原理和实际代码示例。 首先,JavaMail API是Java平台用于处理邮件服务的核心库,它提供了丰富的接口和类来创建、发送和读取电子邮件。要使用JavaMail,...
Java发送电子邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。下面将详细解释如何使用Java来发送邮件,并提供相关的知识点。 首先,Java通过JavaMail API提供了发送邮件的功能。JavaMail ...
要用Java发送电子邮件,你需要引入以下两个JAR文件: - `javax.mail.jar`:包含JavaMail API的核心类。 - `javax.activation.jar`(或`activation.jar`):包含了数据处理和类型识别的类,是JavaMail API的必要...
### JAVA发送电子邮件——详解电子邮件工具程序的开发与实现 #### 一、引言 随着互联网技术的发展,电子邮件已经成为人们日常沟通的重要方式之一。利用Java语言编写电子邮件工具程序不仅可以提高工作效率,还能更好...
mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送mail发送...
在Java编程语言中,发送电子邮件是一项常见的任务,可以用于通知、数据传输或其他自动化流程。JavaMail API 是一个开源库,它提供了与邮件服务器交互的能力,实现了SMTP(简单邮件传输协议)、POP3(邮局协议)和...
本资源提供了关于使用Java发送电子邮件的源代码学习资料,让我们深入探讨这个主题。 首先,我们需要理解JavaMail API,它是Java平台上的一个标准API,用于处理邮件通信。JavaMail API包括了多个组件,如`javax.mail...
在IT行业中,使用编程语言发送电子邮件是一项常见的任务,特别是在自动化脚本或系统集成中。Java作为广泛应用的编程语言,提供了多种方法来发送邮件,包括通过Outlook和Notes客户端。在这个场景下,我们将深入探讨...
Java发送邮件是软件开发中常见的需求,特别是在自动化通知、用户验证和客户服务等方面。在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下...
在这个主题中,我们将深入探讨如何使用Java来发送电子邮件,以及涉及到的关键技术点。 首先,Java中用于发送邮件的主要API是JavaMail API,它是一个开源库,提供了一组接口和类,允许开发者通过SMTP(简单邮件传输...
Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...
Java邮件发送功能是Java开发中常见的一项任务,用于在应用程序中发送电子邮件。在这个场景中,我们关注的是两个关键的jar包:`commons-email-1.5.jar`和`javax.mail.jar`,它们对于构建Java邮件发送系统至关重要。 ...
首先,让我们来看看如何使用Java发送电子邮件。JavaMail API是Java平台上的标准邮件处理库,提供了发送和接收邮件的功能。以下是一个简单的邮件发送示例: 1. 引入JavaMail相关依赖库,如`javax.mail`和`javax.mail...