/*** java发送带附件的邮件* 周枫* 2013.8.10*/
package com.dsideal.Util;
import javax.mail.*;
import javax.mail.internet.*;import java.util.*;
import javax.activation.*;public class SendMail {private static String host = "smtp.qq.com"; // smtp服务器private static String user = "95834073@qq.com"; // 用户名private static String pwd = "******"; // 密码/*** <p>功能:</p>* @author 周枫* @date 2013-8-10* @param "发送的邮箱", "接收的邮箱", "这个是收件箱列表标题名称", "发送邮件显示标题", "邮件正文", "附件名称","附件地址+名称"* @return void*/public static void send(String from,String to,String personalName,String subject,String mail_body,String affixName,String affix_url) {Properties props = new Properties();// 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)props.put("mail.smtp.host", host);// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)props.put("mail.smtp.auth", "true");// 用刚刚设置好的props对象构建一个sessionSession session = Session.getDefaultInstance(props);// 用session为参数定义消息对象MimeMessage message = new MimeMessage(session);try {Address address = new InternetAddress(from,personalName);// 加载发件人地址
            message.setFrom(address);// 加载收件人地址message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));// 加载标题
            message.setSubject(subject);// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件Multipart multipart = new MimeMultipart();// 设置邮件的文本内容BodyPart contentPart = new MimeBodyPart();contentPart.setText(mail_body);multipart.addBodyPart(contentPart);// 添加附件BodyPart messageBodyPart = new MimeBodyPart();//解决中文乱码问题DataSource source = new FileDataSource(affix_url);// 添加附件的内容messageBodyPart.setDataHandler(new DataHandler(source));// 添加附件的标题// 这里很重要,不会变成乱码
            messageBodyPart.setFileName(MimeUtility.encodeText(affixName));  multipart.addBodyPart(messageBodyPart);// 将multipart对象放到message中
            message.setContent(multipart);// 保存邮件
            message.saveChanges();// 发送邮件Transport transport = session.getTransport("smtp");// 连接服务器的邮箱
            transport.connect(host, user, pwd);// 把邮件发送出去
            transport.sendMessage(message, message.getAllRecipients());transport.close();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {SendMail.send("95834073@qq.com", "95834073@qq.com", "列表名称", "html页面标题", "周枫java发送邮件", "附件.txt", "D:"+File.separator+"temp周枫.txt");System.out.println("邮件成功发送完成!");}
}

要用到的JAR包:http://files.cnblogs.com/littlehb/mail.rar    (解压后放到Lib里)

转载于:https://www.cnblogs.com/littlehb/p/3219112.html

用java发送邮件(黄海已测试通过)相关推荐

  1. java发送邮件设置邮件头的MessageId解决办法,发送邮件代码,u-mail的示例代码

    参考链接 业务描述:使用U-Mail进行邮件的发送,需要自定义任务标识,用于更新本地邮件的发送状态 说明:直接使用setHeader()是失效的 解决方式: public class MyMimeMe ...

  2. CodeOne 主题演讲:Java,未来已来

    在上一次JavaOne大会之后,首届Oracle CodeOne大会最近于美国旧金山举行.周一晚上主旨演讲的头条是"Java:未来已来(The Future of Java Is Today ...

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

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

  4. 手把手教你实现Java发送邮件(1)-发送简单的文本

    说明:本博客已经收藏至我的gitee中的code_demo仓库(点击此链接跳转)中,且gitee中有相应的代码~ 欢迎访问~~ 不仅仅是code,还有一些通俗的讲解哦~ 文章目录 一.Java实现邮件 ...

  5. 手把手教你用java发送邮件

    手把手教你用java发送邮件 一.学习目的 1.学会用jmail发送邮件 2.学会自动发送邮件需要的一些设置 二.准备内容(以163邮箱示范) 1.个人邮箱 首先登录163个人邮箱,然后在个人页面-设 ...

  6. 简易的定时发送生日邮件功能(Listener+定时器+使用java发送邮件)

    实现功能主要技术点: Listener(监听器) 使用Java发送邮件(JavaMail的使用) 代码示例 创建web工程,写一个监听器监听ServletContext对象的创建(创建时机:启动服务器 ...

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

    最近碰到一个问题,Java发送邮件时,本地没有问题,测试服务器也没问题,但上线后邮件的标题和发件人乱码,正文OK 通过翻阅资料,原因及解决方法如下: 原因: 当一段 Text 或者 HTML 通过电子 ...

  8. java 发送邮件(SSL加密方式,含附件)

    java 发送邮件(SSL加密方式) 一.基于javamail发送邮件 二.基于Apache提供的commons-email发送邮件 一.基于javamail发送邮件 maven: <depen ...

  9. Java发送邮件(网易163邮箱)(简单易操作篇)

    文章目录 一.前言 二.事先准备步骤 三.Java具体代码实现 1. 类有哪几个? 2.jar包配置 3.关键代码功能简介 4.具体代码 4.1 MailConst.java 负责存放一些配置 4.2 ...

最新文章

  1. form 多个submit php,一个复杂的PHP表单处理方案?
  2. NSString 用法总结与陷阱
  3. 能用钱解决的,绝不要花时间 过来人的11条人生经验
  4. 在WebPart中上传图片到SharePoint图片库,读取Exif信息到图片的自定义属性
  5. java调用python库pyd_Java调用Python的两种方式
  6. 代码 拉取_Git 利用 Webhooks 实现代码的自动拉取
  7. 36岁,程序员,为公司工作8年,昨天HR说公司不准备续约
  8. 新闻列表页flex_C端列表页如何设计?
  9. linux wamp,ubuntu wamp server ..................
  10. AWStats日志分析部署
  11. js获取chrome浏览器版本信息
  12. SQLite文件查看工具DB Browser for SQLite
  13. JavaScript 全栈工程师培训教程(React.js + Node.js)
  14. 如何学习计算机思维,刘康平:为什么我们每个人都应该学习计算思维?
  15. 基于Xilinx的FPGA下载配置详解及几种电路参考设计
  16. JS变量、数据类型及运算符
  17. Hudi-通过Hive查询hudi表数据
  18. 10 个深恶痛绝的 Java 异常
  19. 2021-03-08~09~10~11~12 大数据课程笔记 day47day48day49day50day51
  20. 穆穆推荐-软件销售行业软件公司销售参考操作手册-之5-软件行业客户分类及销售人员激励

热门文章

  1. 幻想和欲望毁了多少苦命的人(修改增加版)
  2. 看以色列话剧《安魂曲》(图)
  3. 修改WordPress主题导致整个站点404无法访问
  4. 使用CAtlRegExp正则表达式检查浮点数输入
  5. springboot jwt token前后端分离_为什么要 前后端分离 ?
  6. mysql数据库压缩备份_MySQL数据库之mysql数据库备份命令分享(mysql压缩数据库备份)...
  7. 华为云classroom应用_华为任正非:将来所有应用都会长在云土地上,但现在还不是...
  8. linux nacos启动_Nacos集群安装配置
  9. c# mongodb or查询_C# MongoDB 查询方法
  10. java范例_Java范例集锦(一)