JAVAV EMAIL
package a;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MyMailSender2
{
// private String hostName = "smtp.qq.com"; //可以根据邮箱地址截取例如 123@qq.com,12344@163.com
// private String userName = ""; //数据库获取
// private String userPwd = ""; //授权码????
// private String fromUserMail = "10.com"; //数据库获取
// private String toUserMail = "ren3.com"; //数据库获取
public void sendTestMail(String hostName,final String userName,final String userPwd,String fromUserMail,String toUserMail) throws AddressException, MessagingException
{
Properties mailProps = new Properties();
mailProps.setProperty("mail.smtp.host", hostName);
mailProps.setProperty("mail.smtp.starttls.enable", "true");
mailProps.setProperty("mail.smtp.auth", "true");
mailProps.setProperty("mail.smtp.quitwait", "false");
//如果不要对服务器的ssl证书进行受信任检查,测添加以下语句
mailProps.setProperty("mail.smtp.ssl.trust","*");
Session mailSession = Session.getDefaultInstance(mailProps,
new Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(userName, userPwd);
}
});
Message mailMessage = new MimeMessage(mailSession);
mailMessage.setFrom(new InternetAddress(fromUserMail));
mailMessage.setRecipients(Message.RecipientType.TO,
InternetAddress.parseHeader(toUserMail, false));
mailMessage.setSubject("This is a test mail.");//发送标题
mailMessage.setText("This is a test mail for gmail");//发送内容
mailMessage.setSentDate(new Date());
Transport.send(mailMessage);
}
public static void main(String[] args)
{
try
{
new MyMailSender2().sendTestMail(null, null, null, null, null);
//update邮件发送状态
}
catch (AddressException e)
{
e.printStackTrace();
}
catch (MessagingException e)
{
e.printStackTrace();
}
}
}
package a;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message.RecipientType;
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 ServSendEmailBySmtp {
private static Properties prop;
// 发件人
private static InternetAddress sendMan = null;
public static void sendHtmlAndAttach(String senduser,String sendpassword,
String send_name, ArrayList<String> receiveuser,ArrayList<String> cc_user,
String hostAddress,String title,String content_info,ArrayList<String[]> fileinfo) throws Exception {
prop = new Properties();
prop.put("mail.transport.protocol", "smtp"); // 指定协议
prop.put("mail.smtp.host", hostAddress); // 主机
prop.put("mail.smtp.port", 25); // 端口
prop.put("mail.smtp.auth", "true"); // 用户密码认证
prop.put("mail.debug", "true"); // 调试模式
sendMan = new InternetAddress(senduser, send_name, "UTF-8");//发送的人员
Address[] to_all=new Address[receiveuser.size()]; //发送人
Address[] cc_all=new Address[cc_user.size()];//抄送人
if(to_all !=null && to_all.length>0){
for (int i = 0; i < receiveuser.size(); i++) {
to_all[i]=new InternetAddress(receiveuser.get(i));
}
}
if(cc_all !=null && cc_all.length>0){
for (int i = 0; i < cc_user.size(); i++) {
cc_all[i]=new InternetAddress(cc_user.get(i));
}
}
// 1. 创建邮件会话
Session session = Session.getDefaultInstance(prop);
// 2. 创建邮件对象
MimeMessage message = new MimeMessage(session);
// 3. 设置参数:标题、发件人、收件人、发送时间、内容
message.setSubject(title);
// message.setSender(sendMan);
message.setFrom (sendMan);//设置发送人名称
//message.setRecipient(RecipientType.TO, new InternetAddress(receiveuser));//单个
message.setRecipients(RecipientType.TO, to_all);
message.setSentDate(new Date());
message.addRecipients(RecipientType.CC, cc_all); //抄送
// message.addRecipients(RecipientType.BCC, all);
/*
* 带附件(图片)邮件开发
*/
// 构建一个总的邮件块
MimeMultipart mixed = new MimeMultipart("mixed");
// ---> 总邮件快,设置到邮件对象中
message.setContent(mixed);
// 左侧: (文本+图片资源)
MimeBodyPart left = new MimeBodyPart();
// 右侧: 附件
// 设置到总邮件块
mixed.addBodyPart(left);
/******附件********/
if (fileinfo!=null && fileinfo.size()>0) {
for (int i = 0; i < fileinfo.size(); i++) {
MimeBodyPart right = new MimeBodyPart();
DataSource attr_ds = new FileDataSource(new File(fileinfo.get(i)[0]));
DataHandler attr_handler = new DataHandler(attr_ds);
right.setDataHandler(attr_handler);
right.setFileName(MimeUtility.encodeWord(fileinfo.get(i)[1]));
mixed.addBodyPart(right);
}
}
/***************设置邮件内容: 多功能用户邮件 (related)*******************/
// 4.1 构建一个多功能邮件块
MimeMultipart related = new MimeMultipart("related");
// ----> 设置到总邮件快的左侧中
left.setContent(related);
// 4.2 构建多功能邮件块内容 = 左侧文本 + 右侧图片资源
MimeBodyPart content = new MimeBodyPart();
/* MimeBodyPart resource = new MimeBodyPart();
// 设置具体内容: a.资源(图片)
String filePath = ServSendEmailBySmtp.class.getResource("8.jpg").getPath();
DataSource ds = new FileDataSource(new File(filePath));
DataHandler handler = new DataHandler(ds);
resource.setDataHandler(handler);
resource.setContentID("8.jpg"); // 设置资源名称,给外键引用
*/
// 设置具体内容: b.文本
content.setContent(content_info, "text/html;charset=UTF-8");
related.addBodyPart(content);
// related.addBodyPart(resource);
// 5. 发送
Transport trans = session.getTransport();
trans.connect(senduser, sendpassword);
trans.sendMessage(message, message.getAllRecipients());
trans.close();
}
@SuppressWarnings("static-access")
public static void main(String[] args) throws Exception {
ArrayList<String> arrayList1 = new ArrayList<String>();
arrayList1.add("renbomonkey@163.com");
ArrayList<String> arrayList2 = new ArrayList<String>();
new ServSendEmailBySmtp().sendHtmlAndAttach("1097204589", "mgjgimuvlpgygiji",
"1097204589@qq.com", arrayList1, arrayList2, "smtp.qq.com", "toncent:zhuti", "content:cneirong", null);
}
}
JAVAV EMAIL的更多相关文章
- 如何在网页中提取Email地址
开博好久了,今天第一次发表技术文档,之前总是将一些好的事例保存在电脑,时间久了找起来也很麻烦,所以还是放在博客里进行归类比较方便,这样也能将自己在学习过程中的一些心得体会分享给大家,也能给需要的人一点 ...
- 系统中没有邮件客户端设置autoLink=email会挂掉的问题
TextView的autoLink属性为我们提供了很大的便利性,当文本中有网址,邮箱或电话的时候可以让我们方便地执行打电话发邮件等动作,不过也有一些问题,比如说设置autoLink包含email属性, ...
- Email系列(QQ邮箱 + 含附件的邮箱案例 + 项目实战)
平台之大势何人能挡? 带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4822808.html 邮箱系列:https://github.com/duniti ...
- 应用层之E-mail服务及javaMail邮件发送的知识总结
关于Email服务你需要知道的知识点: 概述: 今天来介绍一下应用层的电子邮件服务,我们每天几乎都在用,电子邮件(email)服务也是一种基于C/S模式的服务,它采用的是一种"存储-转发&q ...
- 2.C#WinForm基础Email分析器
功能:输入Email地址,输出用户名和域名 string[] String.split(params char[] separator)(+5重载)) 返回的字符串数组包含此实例的字符串(由指定Uni ...
- SSIS 实例——将SQL获取的信息传递到Email中
最近在为公司财务开发一个邮件通知时遇到了一个技术问题.原来我设计SSIS的是每天将ERP系统支付数据导出到财务支付平台后 Email 通知财务,然后财务到支付平台上进行支付操作.由于那个时候开发时间很 ...
- java发送 email
public class EmailUtils implements IAction { private static Logger logger = Logger.getLogger(EmailUt ...
- 使用QQ邮箱发送email(Python)
实际开发过程中使用到邮箱的概率很高,那么如何借助python使用qq邮箱发送邮件呢? 代码很简单,短短几行代码就可以实现这个功能. 使用到的模块有smtplib和email这个两个模块,关于这两个模块 ...
- 《精通正则表达式》笔记 --- “验证”Email格式
写一个正则表达式的三个步骤: 理解需求并找出你需要验证的数据的特征: 写一个还可以用的正则表达式: 看看能不能达到你的目的,同时想想会不会匹配到一些不想要的数据: [可选]性能优化 我觉得写一个正则表 ...
随机推荐
- 使用Android Studio来阅读Android源码
在编译android系统后,执行下面命令来生成索引. mmm development/tools/idegen/mv ./out/target/product/tiny4412/obj/GYP/sha ...
- 嵌入式Linux-LCD显示多行文字
显示文字这里我用了freetype库. 以左上角显示两行文字: #include <sys/types.h> #include <sys/stat.h> #include &l ...
- 使用 dotnet-monitor 分析.NET 应用程序
dotnet-monitor 是 .NET Core 命令行接口 (CLI) 工具, 可以很方便的在dotnet环境中分析我们的应用程序,需要注意的是,目前它还只是一个实验性的工具 在这之前,我们使用 ...
- sqlite嵌入式数据库简介及特性
p.p1 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(69, 69, 69, 1) } p.p2 { margin: ...
- (class: org/apache/jasper/runtime/PageContextImpl, method: getELResolver signature: ()Ljavax/el/ELResolver;) Incompatible argument to
网上大多都说是jsp版本原因: 引用: .............................................. ................................. ...
- 进程描述符(PCB)
进程描述符(PCB) 概述 CPU作为计算机的核心部件,我们当然希望它能一直工作,充分提高它的使用效率.对于上层软件来说,我们不可能直接去操控CPU(我们没这能力也没必要),因为操作系统是夹在计算机硬 ...
- 学习笔记之Python人机交互小项目一:名字管理系统
2020是一个不平凡的一年,但即使挫折不断,我们每学期的课程实训也没有受到影响,仍旧如期实施.与往年不同的是,今年的实训老师是学校邀请的公司在职人员来给我们实训.今年实训的内容是Python语言,下面 ...
- case when then else end用法
case具有两种格式,简单case函数和case搜索函数 case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略 1.简单函数 CASE sex WHEN '1 ...
- java操作hive和beeline的使用
一.java操作hive 1.启动服务:hiveserver2,让hive开启与外部连接的服务 nohup hiveserver2 1>/dev/null 2>/dev/null & ...
- jQuery中toggle与slideToggle以及fadeToggle的显示、隐藏方法的比较
1.区别 ①动画效果的比较: toggle:直接显示.隐藏,如果有[时间参数]且[匹配的元素有宽度属性],则动态效果为左上角-右下角拉卷效果,透明度0-1之间的变化:若有时间参数但是[匹配的元素没有宽 ...