java发送email
package com.assess.util; import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties; import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
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 SendmailUtil {
/*
* 参考此文章
* http://www.cnblogs.com/xdp-gacl/p/4216311.html
*
*
* smtp.sohu.com 搜狐邮箱主机
* smtp.163.com 163邮箱主机,默认端口25
* smtp.qq.com qq邮箱主机
* */ /**
* from 发件人邮箱
* passwd 发件人邮箱密码
* to 收件人邮箱
* subject 主题
* txt 内容
* files 附件
* host 服务主机
* protocol 协议 (smtp)
* auth 身份验证(true)
* */
public static boolean send(String from,String passwd,String to,
String subject, String txt,List<File> files,
String host,String protocol,String auth) { try {
Properties prop = new Properties();
prop.setProperty("mail.host", host);
prop.setProperty("mail.transport.protocol", protocol);
prop.setProperty("mail.smtp.auth", auth);
//使用JavaMail发送邮件的5个步骤
//1、创建session
Session session = Session.getInstance(prop);
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3、使用邮箱的用户名和密码连上邮件服务器,
// 发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,
// 用户名和密码都通过验证之后才能够正常发送邮件给收件人。
ts.connect(host, from, passwd);
//4、创建邮件
Message message = createMixedMail(session, from, to, subject, txt, files);
//5、发送邮件
ts.sendMessage(message, message.getAllRecipients());
ts.close(); }catch(Exception e) {
return false;
}
return true;
} /**
* 发送文字、附件的邮件
* */
public static MimeMessage createMixedMail(Session session,String from,String to,String subject,String txt,List<File> files) throws Exception {
//创建邮件
MimeMessage message = new MimeMessage(session); //设置邮件的基本信息
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject); //正文
MimeBodyPart text = new MimeBodyPart();
text.setContent(txt,"text/html;charset=UTF-8"); //图片
// MimeBodyPart image = new MimeBodyPart();
// image.setDataHandler(new DataHandler(new FileDataSource("src\\check.png")));
// image.setContentID("aaa.jpg"); //附件
List<MimeBodyPart> mimeBodyParts = new ArrayList<MimeBodyPart>();
for(int i=;i<files.size();i++) {
MimeBodyPart attach = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource(files.get(i)));
attach.setDataHandler(dh);
attach.setFileName(MimeUtility.encodeWord(dh.getName()));
mimeBodyParts.add(attach);
} //描述关系:正文和图片
MimeMultipart mp1 = new MimeMultipart();
mp1.addBodyPart(text);
// mp1.addBodyPart(image);
mp1.setSubType("related"); //描述关系:正文和附件
MimeMultipart mp2 = new MimeMultipart();
for(int i=;i<mimeBodyParts.size();i++) {
mp2.addBodyPart(mimeBodyParts.get(i));
}
// mp2.addBodyPart(attach2); //代表正文的bodypart
MimeBodyPart content = new MimeBodyPart();
content.setContent(mp1);
mp2.addBodyPart(content);
mp2.setSubType("mixed"); message.setContent(mp2);
message.saveChanges(); // message.writeTo(new FileOutputStream("D:\\MixedMail.eml"));
//返回创建好的的邮件
return message;
}
}
package com.assess.util; import java.io.File;
import java.util.ArrayList;
import java.util.List; public class Main { private static final String HOST = "smtp.163.com";
private static final String PROTOCOL = "smtp";
private static final String AUTH = "true"; private static final String USER_NAME = "135****920@163.com";//发件人邮箱
private static final String PASSWORD = "";//密码
private static final String RECRIVER ="139****893@qq.com";//接收人邮箱 public static void main(String[] args) {
List<File> files = new ArrayList<File>();
File f = new File("src\\备忘.rar");
File f2 = new File("src\\check.png");
files.add(f);
files.add(f2);
if(SendmailUtil.send(USER_NAME, PASSWORD, RECRIVER, "主题信息", "内容信息", files, HOST, PROTOCOL, AUTH)) { System.out.println("success");
}
} }
java发送email的更多相关文章
- java发送email一般步骤
java发送email一般步骤 一.引入javamail的jar包: 二.创建一个测试类,实现将要发送的邮件内容写入到计算机本地,查看是否能够将内容写入: public static void mai ...
- Java发送email的端口问题
Could not connect to SMTP host: smtp.***.com, port: 465, response: -1 使用Java发送email 的端口问题.一般使用25端口即可 ...
- java发送 email
public class EmailUtils implements IAction { private static Logger logger = Logger.getLogger(EmailUt ...
- java发送email(含代理方式,ssl方式,传统方式)
package spring.vhostall.com; import java.security.Security; import java.util.Date; import java.util. ...
- 用java发送email邮件例子
package com.hzk.mail; import java.net.MalformedURLException; import java.net.URL; import java.text.S ...
- Java发送Email邮件及SpringBoot集成
一:普通方式发送 1.导包 <!--Java MAil 发送邮件API--> <dependency> <groupId>javax.mail</groupI ...
- 关于java发送email
转载:https://blog.csdn.net/qq_32371887/article/details/72821291 1:使用JavaMail发送邮件 // 1.创建一个程序与邮件服务器会话对象 ...
- 廖雪峰Java13网络编程-2Email编程-1发送email
1.邮件发送 1.1传统邮件发送: 传统的邮件是通过邮局投递,从一个邮局到另一个邮局,最终到达用户的邮箱. 1.2电子邮件发送: 与传统邮件类似,它是从用户电脑的邮件软件(如outlook)发送到邮件 ...
- 使用spring 并加载模板发送Email 发邮件 java 模板
以下例子是使用spring发送email,然后加载到固定的模板,挺好的,大家可以试试 需要使用到spring-context 包 和 com.springsource.org.apache.veloc ...
随机推荐
- wParam和lParam两个参数到底是什么意思?
在Windows的消息函数中,有两个非常熟悉的参数:wParam,lParam. 这两个参数的字面意义对于现在的程序来说已经不重要了,因为它是16位系统的产物,为了保持程序的可移植性,就将它保存了下来 ...
- 7、ASP.NET MVC入门到精通——第一个ASP.NET MVC程序
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递 ...
- Combobox的使用
第一次写博客,只是对自己在工作中遇到的问题进行一次总结回顾,为以后有同样的错误有一个参考: 由于最近空余时间很少,只是零零散散的把平时记录的笔记搬到博客园而已,博客中可能出现一些低级错误,希望互相学习 ...
- 浅谈tornado项目应用设计
一.预备知识 最近开始尝试做一些tornado商城项目,在开始之前需要引入一些项目设计知识,如接口,抽象方法抽象类,组合,程序设计原则等,个人理解项目的合理设计可增加其灵活性,降低数据之间的耦合性,提 ...
- ADO.NET数据库参数化
数据库参数化传递可以增强数据的安全性,但却会降低开发效率,为此创建了如下函数以解决这个问题: public static string PrepareParameter(string sql, out ...
- Bootstrap之栅格系统
bootstrap 移动优先 中文官网 http://www.bootcss.com/ 1.基本模板 <!DOCTYPE html> <html lang="en&quo ...
- iOS如何用代码控制以不同屏幕方向打开新页面?
转载:http://blogread.cn/it/article/7765?f=wb#original 代码示例:https://github.com/johnlui/Swift-On-iOS/tre ...
- 网页端实现input数字输入框
实现input输入框只能输入数字的效果: <input type="text" name="" id="phoneNum" value ...
- Synchronization Service Manager
You can use this UI Shell to check the User Profile log for the SharePoint. It's stored in this pa ...
- Linux0.11内核--缓冲区机制大致分析
文件系统的文件太多,而且是照搬的MINIX的文件系统,不想继续分析下去了.缓冲区机制和文件系统密切相关,所以这里就简单分析一下缓冲区机制. buffer.c 程序用于对高速缓冲区(池)进行操作和管理. ...