首先要加入mail.jar包

  1. import java.io.UnsupportedEncodingException;
  2. import java.util.Properties;
  3. import javax.activation.DataHandler;
  4. import javax.activation.FileDataSource;
  5. import javax.mail.Address;
  6. import javax.mail.Message;
  7. import javax.mail.MessagingException;
  8. import javax.mail.Multipart;
  9. import javax.mail.Session;
  10. import javax.mail.Transport;
  11. import javax.mail.internet.InternetAddress;
  12. import javax.mail.internet.MimeBodyPart;
  13. import javax.mail.internet.MimeMessage;
  14. import javax.mail.internet.MimeMultipart;
  15. import javax.mail.internet.MimeUtility;
  16.  
  17. public class SendMail {
  18. /**
  19. * 发送邮件
  20. * @param from 发送方地址
  21. * @param frompwd 发送方邮件密码
  22. * @param to 发送的目的地
  23. * @param sub 邮件主题
  24. * @param attr 附件
  25. * @param content 内容
  26. * @throws MessagingException
  27. * @throws UnsupportedEncodingException
  28. */
  29. public void sendTextMail(String from, String frompwd, String to, String sub, String attr,String content)
  30. throws MessagingException, UnsupportedEncodingException {
  31. Properties props = new Properties();
  32. props.setProperty("mail.smtp.auth", "true");// 设置访问smtp服务器需要认证
  33. props.setProperty("mail.transport.protocol", "smtp"); // 设置访问服务器的协议
  34.  
  35. Session session = Session.getDefaultInstance(props);
  36. session.setDebug(true); // 打开debug功能
  37.  
  38. Message msg = new MimeMessage(session);
  39. msg.setFrom(new InternetAddress(from)); // 设置发件人,163邮箱要求发件人与登录用户必须一致(必填),其它邮箱不了解
  40. // msg.setText(content); // 设置邮件内容
  41. msg.setSubject(sub); // 设置邮件主题
  42. MimeBodyPart mbp = new MimeBodyPart();
  43. // 是否有附件
  44. if (attr != null && attr != "") {
  45. FileDataSource fds = new FileDataSource(attr);
  46.  
  47. mbp.setDataHandler(new DataHandler(fds));
  48. mbp.setFileName(MimeUtility.encodeText(fds.getName()));
  49. }
  50. mbp.setContent(content.toString(), "text/html;charset=gb2312"); // 设置发送内容
  51. Multipart mp = new MimeMultipart();
  52. mp.addBodyPart(mbp);
  53. msg.setContent(mp); //发送附件
  54. Transport trans = session.getTransport();
  55. trans.connect("smtp.163.com", 25, from, frompwd); // 连接邮箱smtp服务器,25为默认端口
  56. trans.sendMessage(msg, new Address[] { new InternetAddress(to) }); // 发送邮件
  57. trans.close(); // 关闭连接
  58. }
  59. }

  这里只能发送163邮件。

本文参考博客:http://www.2cto.com/kf/201402/276546.html

使用java发送邮件的更多相关文章

  1. Java发送邮件初窥

    一.背景 最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送. 二.Java发送邮件的注意事项 ...

  2. Java发送邮件,所遇到的常见需求

    明天要做关于发送邮件的接口,虽然我之前已用Java Mail做过许多关于邮件的发送.但同事说有点难点,虽我还不知难点在哪,还是要复习下.凡事预则立,不预则废嘛~ 所需的包: Java Mail : 目 ...

  3. 用java发送邮件(黄海已测试通过)

    /** * java发送带附件的邮件 * 周枫 * 2013.8.10 */ package com.dsideal.Util; import javax.mail.*; import javax.m ...

  4. Java发送邮件(带附件)

    实现java发送邮件的过程大体有以下几步: 准备一个properties文件,该文件中存放SMTP服务器地址等参数. 利用properties创建一个Session对象 利用Session创建Mess ...

  5. 用Java发送邮件

    要用Java发送邮件,除过JDK本身的jar包之外,还需要两个额外的jar包:JavaMail和JAF.当然,如果你使用的JavaEE的JDK,那就不用单独去网上下载了,因为JavaEE的JDK中已经 ...

  6. Java发送邮件时标题和发件人乱码

    最近碰到一个问题,Java发送邮件时,查看邮箱结果,发件人及邮件标题正文全部乱码 通过翻阅资料,原因及解决方法如下: // Set Subject: 头字段 message.setSubject(Mi ...

  7. Java - 31 Java 发送邮件

    Java 发送邮件 使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail API 和Java Activation Framework (JAF) . 你可以在 ...

  8. Java-Runoob-高级教程:Java 发送邮件

    ylbtech-Java-Runoob-高级教程:Java 发送邮件 1.返回顶部 1. Java 发送邮件 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 Java ...

  9. Java发送邮件--web.xml配置,Java代码配置

    前言:我目前总结的使用java发送邮件的方式有两种,分别是在spring框架xml配置文件使用bean标签,另一种方法是把发送功能封装成一个对象,废话不多说上代码, 边看代码边讲解,希望对需要的人能有 ...

  10. Java发送邮件示例

    利用Java发送邮件示例: 1.发送QQ邮件 import java.util.Properties; import javax.mail.Message; import javax.mail.Mes ...

随机推荐

  1. 第一个Asp.net小项目,主页写了下后台代码

    一个比较完善的登录模块,就目前的知识范围来说应该算是完美的. 涉及到:cookies,Session,验证码等知识面 Cookies存放一组值: HttpCookie cook = new HttpC ...

  2. 我的mysql测试环境

    版本:5.7 安装方式:yum 修改密码:alter user user() identified by 'root'; 修改配置文件: vi /etc/my.cnf 在my.cnf中添加 skip- ...

  3. 使用 Sublime Text 2 开发 Unity3D 项目

    用 Sublime 已经有很长一段时间,很舒适,很贴心,根本停不下来.之前因为是开发页游,所以是用 AS3 开发,近段时间,新开了个手游项目,引擎方面选定了 Unity3D,老实说,之前没有太多的 3 ...

  4. oralce 密码长度

    Oracle 11G的新特性所致, Oracle 11G创建用户时缺省密码过期限制是180天, 如果超过180天用户密码未做修改则该用户无法登录. Oracle提示错误消息ORA-28001: the ...

  5. javascript版快速排序和冒泡排序

    var sort = (function () { //快速排序 var quickSort = { partition: function (array, low, high) { if (low ...

  6. linux 硬盘速度测试

    [root@iZ25oat874uZ data]# time dd if=/dev/zero of=/var/test bs=8k count=1000000 1000000+0 records in ...

  7. windows系统查看被占用的端口号

    我们需要查看80端口被哪个进程占用了, 1. netstat -ano|findstr 80

  8. bzoj4213: 贪吃蛇

    题意:给定一个网格,有一些格子是障碍不用管,剩余的是空地,你要用一些起点和终点在边界上的路径或环来完全覆盖掉空地,如果使用第一种,会付出1的代价,求最小代价,不能覆盖则输出-1. 现在看到网格而且数据 ...

  9. Android网络连接判断与处理

    博客分类: Android 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android ...

  10. Docker私服仓库push 错误

    docker push 提交时错误提示: docker push 192.168.1.110:5000/redis Error response from daemon: invalid regist ...