JavaMail实现收发邮件——(二)发送邮件
2015-06-17 23:22
441 查看
一.导入jar包: 将mail.jar和activation.jar导入到项目中(eclipse中:点击项目名,鼠标右键-->Build Path-->Configure Build Path-->Libraries-->Add External JARs)注:以上是针对JavaSE的环境,如果是JavaEE环境则不需要,j2ee.jar中包含了上述两个依赖包,可以直接使用。
二.邮件发送关键代码
(1)新建Properties属性对象:
(2)获取Session会话:
(3)创建Message消息对象以及相关配置:
2.里面有返回值是因为我把发送邮件的代码放在了public boolean sendMail(){}中,通过返回值判断是否已发送成功。下面我会把完整代码放在附件中供大家参考
(4)用Session会话得到Transport对象以及发送邮件
三.测试代码
附:
1. JavaMail 1.4.7 jar包官方下载地址是:http://www.oracle.com/technetwork/java/index-138643.html
2. JAF 1.1.1 jar包官方下载地址是:http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html
3. 我已经下载好的上面的两个jar包以及我练习javamail所写的源代码放在了附件中,需要的可以参考下
附件:http://down.51cto.com/data/2365831
二.邮件发送关键代码
(1)新建Properties属性对象:
Properties properties = new Properties(); properties.put("mail.smtp.host", smtpServer); properties.put("mail.smtp.auth", "true");
(2)获取Session会话:
Session session = Session.getInstance(properties); //session.setDebug(true);
(3)创建Message消息对象以及相关配置:
MimeMessage message = new MimeMessage(session); try { //发件人 Address address = new InternetAddress(from); message.setFrom(address); //收件人 for(String toAd : to){ Address toAddress = new InternetAddress(toAd); message.setRecipient(MimeMessage.RecipientType.TO, toAddress); //设置收件人,并设置其接收类型为TO /** * TO:代表有健的主要接收者。 * CC:代表有健的抄送接收者。 * BCC:代表邮件的暗送接收者。 * */ } //主题 message.setSubject(changeEncode(subject)); //时间 message.setSentDate(new Date()); Multipart multipart = new MimeMultipart(); //添加文本 BodyPart text = new MimeBodyPart(); text.setText(content); multipart.addBodyPart(text); //添加附件 for(String fileName : attachmentNames){ BodyPart adjunct = new MimeBodyPart(); FileDataSource fileDataSource = new FileDataSource(fileName); adjunct.setDataHandler(new DataHandler(fileDataSource)); adjunct.setFileName(changeEncode(fileDataSource.getName())); multipart.addBodyPart(adjunct); } //清空收件人集合,附件集合 to.clear(); attachmentNames.clear(); message.setContent(multipart); message.saveChanges(); } catch (Exception e) { e.printStackTrace(); return false; }注:1.这里的收件人to是一个String集合,以实现群发目的
2.里面有返回值是因为我把发送邮件的代码放在了public boolean sendMail(){}中,通过返回值判断是否已发送成功。下面我会把完整代码放在附件中供大家参考
(4)用Session会话得到Transport对象以及发送邮件
try { Transport transport = session.getTransport("smtp"); //用SMTP服务器地址以及用户名和密码连接SMTP服务器 transport.connect(smtpServer,username,password); //发送邮件 transport.sendMessage(message, message.getAllRecipients()); transport.close(); } catch (Exception e) { e.printStackTrace(); return false; }
三.测试代码
public static void main(String[] args) { SendMail sendMail = new SendMail(); sendMail.setSmtpServer("smtp.qq.com"); sendMail.setUsername("youname@qq.com"); sendMail.setPassword("youpassword"); sendMail.setFrom("123456@qq.com"); sendMail.addTo("654321@qq.com"); // sendMail.addTo("123456789@qq.com"); sendMail.setSubject("邮件标题测试"); sendMail.setContent("Hi,JavaMail.\n你好"); // sendMail.addAttachmentNames("C:\\Users\\Administrator\\Desktop\\JavaMail 使用参考.txt"); sendMail.addAttachmentNames("C:/Users/Administrator/Desktop/测试.txt"); // sendMail.addAttachmentNames("C:/Users/Administrator/Desktop/加密与解 密.pdf"); if(sendMail.sendMail()){ System.out.println("邮件发送成功"); } }
附:
1. JavaMail 1.4.7 jar包官方下载地址是:http://www.oracle.com/technetwork/java/index-138643.html
2. JAF 1.1.1 jar包官方下载地址是:http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html
3. 我已经下载好的上面的两个jar包以及我练习javamail所写的源代码放在了附件中,需要的可以参考下
附件:http://down.51cto.com/data/2365831
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 垃圾邮件过滤器 python简单实现
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树