使用java发送邮件
首先要加入mail.jar包
- import java.io.UnsupportedEncodingException;
- import java.util.Properties;
- import javax.activation.DataHandler;
- import javax.activation.FileDataSource;
- import javax.mail.Address;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.Multipart;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeBodyPart;
- import javax.mail.internet.MimeMessage;
- import javax.mail.internet.MimeMultipart;
- import javax.mail.internet.MimeUtility;
- public class SendMail {
- /**
- * 发送邮件
- * @param from 发送方地址
- * @param frompwd 发送方邮件密码
- * @param to 发送的目的地
- * @param sub 邮件主题
- * @param attr 附件
- * @param content 内容
- * @throws MessagingException
- * @throws UnsupportedEncodingException
- */
- public void sendTextMail(String from, String frompwd, String to, String sub, String attr,String content)
- throws MessagingException, UnsupportedEncodingException {
- Properties props = new Properties();
- props.setProperty("mail.smtp.auth", "true");// 设置访问smtp服务器需要认证
- props.setProperty("mail.transport.protocol", "smtp"); // 设置访问服务器的协议
- Session session = Session.getDefaultInstance(props);
- session.setDebug(true); // 打开debug功能
- Message msg = new MimeMessage(session);
- msg.setFrom(new InternetAddress(from)); // 设置发件人,163邮箱要求发件人与登录用户必须一致(必填),其它邮箱不了解
- // msg.setText(content); // 设置邮件内容
- msg.setSubject(sub); // 设置邮件主题
- MimeBodyPart mbp = new MimeBodyPart();
- // 是否有附件
- if (attr != null && attr != "") {
- FileDataSource fds = new FileDataSource(attr);
- mbp.setDataHandler(new DataHandler(fds));
- mbp.setFileName(MimeUtility.encodeText(fds.getName()));
- }
- mbp.setContent(content.toString(), "text/html;charset=gb2312"); // 设置发送内容
- Multipart mp = new MimeMultipart();
- mp.addBodyPart(mbp);
- msg.setContent(mp); //发送附件
- Transport trans = session.getTransport();
- trans.connect("smtp.163.com", 25, from, frompwd); // 连接邮箱smtp服务器,25为默认端口
- trans.sendMessage(msg, new Address[] { new InternetAddress(to) }); // 发送邮件
- trans.close(); // 关闭连接
- }
- }
这里只能发送163邮件。
本文参考博客:http://www.2cto.com/kf/201402/276546.html
使用java发送邮件的更多相关文章
- Java发送邮件初窥
一.背景 最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送. 二.Java发送邮件的注意事项 ...
- Java发送邮件,所遇到的常见需求
明天要做关于发送邮件的接口,虽然我之前已用Java Mail做过许多关于邮件的发送.但同事说有点难点,虽我还不知难点在哪,还是要复习下.凡事预则立,不预则废嘛~ 所需的包: Java Mail : 目 ...
- 用java发送邮件(黄海已测试通过)
/** * java发送带附件的邮件 * 周枫 * 2013.8.10 */ package com.dsideal.Util; import javax.mail.*; import javax.m ...
- Java发送邮件(带附件)
实现java发送邮件的过程大体有以下几步: 准备一个properties文件,该文件中存放SMTP服务器地址等参数. 利用properties创建一个Session对象 利用Session创建Mess ...
- 用Java发送邮件
要用Java发送邮件,除过JDK本身的jar包之外,还需要两个额外的jar包:JavaMail和JAF.当然,如果你使用的JavaEE的JDK,那就不用单独去网上下载了,因为JavaEE的JDK中已经 ...
- Java发送邮件时标题和发件人乱码
最近碰到一个问题,Java发送邮件时,查看邮箱结果,发件人及邮件标题正文全部乱码 通过翻阅资料,原因及解决方法如下: // Set Subject: 头字段 message.setSubject(Mi ...
- Java - 31 Java 发送邮件
Java 发送邮件 使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail API 和Java Activation Framework (JAF) . 你可以在 ...
- Java-Runoob-高级教程:Java 发送邮件
ylbtech-Java-Runoob-高级教程:Java 发送邮件 1.返回顶部 1. Java 发送邮件 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 Java ...
- Java发送邮件--web.xml配置,Java代码配置
前言:我目前总结的使用java发送邮件的方式有两种,分别是在spring框架xml配置文件使用bean标签,另一种方法是把发送功能封装成一个对象,废话不多说上代码, 边看代码边讲解,希望对需要的人能有 ...
- Java发送邮件示例
利用Java发送邮件示例: 1.发送QQ邮件 import java.util.Properties; import javax.mail.Message; import javax.mail.Mes ...
随机推荐
- 第一个Asp.net小项目,主页写了下后台代码
一个比较完善的登录模块,就目前的知识范围来说应该算是完美的. 涉及到:cookies,Session,验证码等知识面 Cookies存放一组值: HttpCookie cook = new HttpC ...
- 我的mysql测试环境
版本:5.7 安装方式:yum 修改密码:alter user user() identified by 'root'; 修改配置文件: vi /etc/my.cnf 在my.cnf中添加 skip- ...
- 使用 Sublime Text 2 开发 Unity3D 项目
用 Sublime 已经有很长一段时间,很舒适,很贴心,根本停不下来.之前因为是开发页游,所以是用 AS3 开发,近段时间,新开了个手游项目,引擎方面选定了 Unity3D,老实说,之前没有太多的 3 ...
- oralce 密码长度
Oracle 11G的新特性所致, Oracle 11G创建用户时缺省密码过期限制是180天, 如果超过180天用户密码未做修改则该用户无法登录. Oracle提示错误消息ORA-28001: the ...
- javascript版快速排序和冒泡排序
var sort = (function () { //快速排序 var quickSort = { partition: function (array, low, high) { if (low ...
- linux 硬盘速度测试
[root@iZ25oat874uZ data]# time dd if=/dev/zero of=/var/test bs=8k count=1000000 1000000+0 records in ...
- windows系统查看被占用的端口号
我们需要查看80端口被哪个进程占用了, 1. netstat -ano|findstr 80
- bzoj4213: 贪吃蛇
题意:给定一个网格,有一些格子是障碍不用管,剩余的是空地,你要用一些起点和终点在边界上的路径或环来完全覆盖掉空地,如果使用第一种,会付出1的代价,求最小代价,不能覆盖则输出-1. 现在看到网格而且数据 ...
- Android网络连接判断与处理
博客分类: Android 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android ...
- Docker私服仓库push 错误
docker push 提交时错误提示: docker push 192.168.1.110:5000/redis Error response from daemon: invalid regist ...