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

/*** 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MS SQL 不常用但却十分有用的一些语法

创建自定义数据类型 CREATE TYPE ADDRESS FROM VARCHAR(30) NOT NULL数据量大了的情况下修改表某字段类型方法 ALTER TABLE TEST ALTER COLUMN TEST VARCHAR(80) 注意&#xff1a;如果要包含一些数据如numeric数据类型转换成为Integer数据类型时数据将自动取整&#xff0c;所以…

iOS开发CoreAnimation解读之三——几种常用Layer的使用解析

iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一、CAEmitterLayer CAEmitterLayer是CoreAnimation框架中的粒子发射层&#xff0c;在以前的一片博客中有详细的介绍和范例&#xff0c;这里不再重复&#xff0c;地址如下&#xff1a; 粒子效果的应用和火焰范例&…

中文格式_常见中文编码格式

中文编码主要有以下四种&#xff1a;GB2312简体中文编码&#xff0c;一个汉字占用2个字节&#xff0c;在大陆是主要的编码方式。当文章/网页中包含繁体中文、日文、韩文等时&#xff0c;这些内容可能无法被正确编码。BIG5繁体中文编码&#xff0c;主要在台湾地区使用。GBK支持简…

广播发送与接收

//发送端 #include <iostream> #include <stdio.h> #include <string.h> #include <winsock2.h> using namespace std; int main() { WSADATA wsaData; short version MAKEWORD(2,0); WSAStartup(version,&wsa…

征服英语的30个坏习惯

作者&#xff1a;李阳 亲爱的正在征服英语的战友们&#xff0c;你们辛苦了&#xff01; 我总结了20多年来我自己以及我周围的成功人士们风风雨雨的生活和奋斗历程&#xff0c;得出了如下结论&#xff1a; 英语的好习惯决定英语学习的最终成败&#xff01; 这些好习惯包括&…

SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用

SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用 一、引言 在移动开发中&#xff0c;通常会用到一些小型的数据库进行数据管理。SQLite是一款十分小巧便捷的数据库&#xff0c;在iOS开发中&#xff0c;原生框架也对其有很好的支持。 二、SQLite常用语句 数据库…

SQL Server之字符串函数

以下所有例子均Studnet表为例&#xff1a; 计算字符串长度len&#xff08;&#xff09;用来计算字符串的长度 select sname ,len(sname) from student字符串转换为大、小写lower() 用来将一个字符串转换为小写&#xff0c;upper() 用来将一个字符串转换为大写 select lower(I …

vue重复路由_vue后台管理系统,动态添加路由,路由重复

使用vue-router的addRoutes动态添加路由时&#xff0c;子路由重复了。点击‘职工类型’&#xff0c;路由地址变为‘http://localhost:8123/#/workerType’&#xff0c;显示的却是‘职工列表’点击‘职工列表’&#xff0c;路由地址变为‘http://localhost:8123/#/workerList’&…

Makefile文件编写

Makefile的一般格式如下&#xff1a; target&#xff1a; components TAB rule 第一行表示的是依赖关系.第二行是规则. 一个通用的Makefile例子&#xff0c;本人觉得还可以&#xff0c;所以就推荐一下 ob file1 #ob为一变量&#xff0c;以后如果要改变源程序…

tonardo做web服务器播放大视频内存泄露问题的解决

之前为了实现websocket来完成网页的推送&#xff0c;所以使用了tonardo作为web服务器。但是如果网页中含有视频插件的话&#xff0c;特别是经常要播放大视频的话&#xff0c;在linux环境下&#xff0c;经常发现 python进程会莫名其妙的死掉。通过内存检测命令动态查看&#xff…

yii框架源码分析之创建controller

使用yii框架的url路径一般形如hostname/?rxxxx/xxxx/xxxx&sdfsdsfdsf我们可以看到有时会使用protected目录下的controller&#xff0c;有时会使用module中controller&#xff0c;具体是如何处理的呢&#xff0c;请看如下的分析&#xff1a;以下代码摘自yii框架核心代码%Yi…

Android通用流行框架大全

Android通用流行框架大全 1. 缓存 名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载 名称描述Android Universal Image Loader一个强大的加载&#xff0c;缓存&#xff0c;展示图片的库Picasso一个强大的图片下载与缓存的库Fresco一个用于管理图像和他们使用的内存的库…

Windows Shell 编程 第六章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987951】...

第六章 快捷方式的最短路径 Windows Shell允许存储任何对象的引用到系统范围内的任何地点。例如&#xff0c;当你从一个文件夹拖拽可执行程序到另一个文件夹时&#xff0c;鼠标自动改变形状给出除拷贝和移动文件之外的第三种选择。 除非你确定&#xff0c;否则可执行文件是不能…

python素材和代码_python之文件和素材

11.1 打开文件open函数open(name[,mode[,buffering]])>>>f open(rC:\text\somefile.txt)11.1.1 文件模式open函数中模式参数的常用值r读模式w写模式a追加模式b二进制模式读/写模式通过在模式参数中使用U参数能够在打开文件时使用通用的换行符支持模式&#xff0c;在这…

类库开发的设计准则

MSDN:类库开发的设计准则转载于:https://www.cnblogs.com/Joetao/articles/2095307.html

ShowMsg函数妙用

为什么80%的码农都做不了架构师&#xff1f;>>> 在对DedeCMS做2次开发的时候可能提示信息会经常用到&#xff0c;为了方便在此将ShowMsg方法提取出来&#xff0c;使用方法&#xff1a;ShowMsg&#xff08;“提示信息”&#xff0c;“进行跳转的页面URL”&#xff0…

二进制文件比较

一 工具 使用Araxis Merge类似的工具来比较两个文件夹是否相同&#xff0c;比较两个二进制文件是否相同。1&#xff09; 比较两个文件夹是否相同&#xff0c;只要有文件的名字不同就认为两个文件夹不相同2&#xff09; 文件修改为新的名字后&#xff0c;二进制比较时仍与原文件…

springboot 分页查询参数_10. Spring Boot 中的分页查询

在Spring Boot中使用分页查询主要依赖了org.springframework.data.domain.*包下面的及格分页类的功能。使用分页查询常见有两种方式&#xff0c;一种是直接在程序中写死分页的参数(页数&#xff0c;每页大小等)&#xff0c;需要依赖PageableDefault注解。该注解指明了分页参数的…

碰到一个微软的bug:CWinAppEx::GetString

在调试公司项目代码的时候&#xff0c;有一个系统设置的功能&#xff0c;里面需要从注册表中去读取数据&#xff0c;因为使用了MFC框架所以&#xff0c;为了简化代码直接使用了CWinAppEx::GetString 、CWinAppEx::SetString、CWinAppEx::GetInt、CWinAppEx::SetInt等等框架内函…

关系数据库SQL之可编程性函数(用户自定义函数)

前言 在关系型数据库中除了前面几篇基本的数据库和数据表操作之外&#xff0c;还提供了可编程性的函数、存储过程、事务、触发器及游标。 本文介绍的是函数。 函数分为两种&#xff1a; 系统函数用户自定义函数准备工作 这里以银行存取款为例说明。 1、创建数据表 --创建账户信…