重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
package com.gpt.util.email;
十多年的牡丹江网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整牡丹江建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“牡丹江网站设计”,“牡丹江网站推广”以来,每个客户项目都认真落实执行。
import java.io.FileOutputStream;
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 com.gpt.util.PropertiesUtil;
/**
*
* Java邮件发送类,使用javaMail类进行邮件发送
* by CKQ
* */
public class MailUtil {
//邮件服务器
private static String mail_host=(String)PropertiesUtil.getMap().get("mail_host");//"smtp.yeah.net";
//邮件服务器端口
private static int port=Integer.valueOf((String)PropertiesUtil.getMap().get("mail_port"));//25;
//邮件协议
private static String mail_transport_protocol=(String)PropertiesUtil.getMap().get("mail_transport_protocol");//"smtp";
//需要smtp验证
private static String mail_smtp_auth=(String)PropertiesUtil.getMap().get("mail_smtp_auth");//"true";
//发送人用户名
private static String username=(String)PropertiesUtil.getMap().get("mail_username");//"wujianhui321@yeah.net";
//发送人密码
private static String password=(String)PropertiesUtil.getMap().get("mail_password");//"xxxxxx";
//发送纯文本邮件
public static boolean sendSimpleMail(String from,String to,String subject,String content) {
boolean result=true;
try {
Properties prop=new Properties();
prop.setProperty("mail.host", mail_host);
prop.setProperty("mail.transport.protocol", mail_transport_protocol);
prop.setProperty("mail.smtp.auth", mail_smtp_auth);
//经验证qq邮箱需要添加一下两条记录,否则失败,其他暂时不知道,这是安全协议所需要的类 add by CKQ 2017-7-19
prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.smtp.socketFactory.port", String.valueOf(port));
Session session=Session.getInstance(prop);
//设置为debug模式 ,生产环境应该关掉
session.setDebug(true);
//获得transport对象
Transport ts=session.getTransport();
//连上邮件服务器
ts.connect(mail_host,port, username,password);
//创建邮件
MimeMessage message=new MimeMessage(session);
//设置发送人
message.setFrom(new InternetAddress(from));
//设置接收人
message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));
//设置主题
message.setSubject(subject);
//设置内容
message.setContent(content,"text/html;charset=UTF-8");
//发送邮件
ts.sendMessage(message, message.getAllRecipients());
//关闭连接
ts.close();
} catch (Exception e) {
e.printStackTrace();
result=false;
}
return result;
}
//发送带图片的邮件
public static boolean sendImageMail(String from,String to,String subject,String absoluteImagePath) throws Exception{
boolean result=true;
try {
//获取图片后缀
String suffix=absoluteImagePath.substring(absoluteImagePath.lastIndexOf(".")+1,absoluteImagePath.length()) ;
//定义contentId,图片到达邮件服务器后会有一个contentId,然后html中可以引用这个contentId显示该图片。
String contentId="1."+suffix;
//内容模板
String content="带图片的邮件img src='cid:"+contentId+"'/";
Properties prop=new Properties();
prop.setProperty("mail.host", mail_host);
prop.setProperty("mail.transport.protocol", mail_transport_protocol);
prop.setProperty("mail.smtp.auth", mail_smtp_auth);
Session session=Session.getInstance(prop);
//设置为debug模式 ,生产环境应该关掉
session.setDebug(true);
//获得transport对象
Transport ts=session.getTransport();
//连上邮件服务器
ts.connect(mail_host,port, username,password);
//创建邮件
MimeMessage message=new MimeMessage(session);
//设置发送人
message.setFrom(new InternetAddress(from));
//设置接收人
message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));
//设置标题
message.setSubject(subject);
//创建正文
MimeBodyPart text=new MimeBodyPart();
//设置内容
text.setContent(content,"text/html;charset=UTF8");
//创建一个图片
MimeBodyPart image=new MimeBodyPart();
//从本地absoluteImagePath文件读取
DataHandler dh=new DataHandler(new FileDataSource(absoluteImagePath));
image.setDataHandler(dh);
//设置图片的contentId
image.setContentID(contentId);
//创建容器描述数据关系
javax.mail.internet.MimeMultipart mm=new MimeMultipart();
//容器添加内容
mm.addBodyPart(text);
//容器添加图片
mm.addBodyPart(image);
mm.setSubType("related");
message.setContent(mm);
message.saveChanges();
//存储创建的邮件
message.writeTo(new FileOutputStream("F:/imagemail.eml"));
ts.sendMessage(message, message.getAllRecipients());
ts.close();
} catch (Exception e) {
e.printStackTrace();
result=false;
}
return result;
}
//发送带附件的邮件
public static boolean sendAttachMail(String from,String to,String subject,String content,ListString absoluteFilePathList) throws Exception{
boolean result=true;
try {
Properties prop=new Properties();
prop.setProperty("mail.host", mail_host);
prop.setProperty("mail.transport.protocol", mail_transport_protocol);
prop.setProperty("mail.smtp.auth", mail_smtp_auth);
Session session=Session.getInstance(prop);
//设置为debug模式 ,生产环境应该关掉
//session.setDebug(true);
//获得transport对象
Transport ts=session.getTransport();
//连接邮件服务器
ts.connect(mail_host,port, username,password);
//创建邮件
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(content,"text/html;charset=UTF-8");
//创建容器描述关系
MimeMultipart mp=new MimeMultipart();
//添加正文
mp.addBodyPart(text);
for(int i=0;iabsoluteFilePathList.size();i++){
//创建附件
MimeBodyPart attach=new MimeBodyPart();
DataHandler dh=new DataHandler(new FileDataSource(absoluteFilePathList.get(i)));
attach.setDataHandler(dh);
attach.setFileName(dh.getName());
//容器添加附件
mp.addBodyPart(attach);
}
mp.setSubType("mixed");
message.setContent(mp);
message.saveChanges();
//保存邮件至F盘
message.writeTo(new FileOutputStream("F:/attachMail.eml"));
ts.sendMessage(message, message.getAllRecipients());
ts.close();
} catch (Exception e) {
e.printStackTrace();
result=false;
}
return result;
}
}
从Jenkins(Hudson)2.9版本开始我们可以使用Jelly脚本。Jelly脚本跟Hudson的API挂钩,能获得你想要的任何信息,所以它很强大。插件有两个打包后的Jelly脚本,当然你也可以自定义(脚本)。
关于插件中默认的两个Jelly脚本:一个用来设计HTML格式邮件,另一个则是定义TEXT格式邮件。通过上面的截图看到它们的样子。你能通过使用模板参数指定插件调用哪一个脚本。它们的使用方法如下:
文本格式: ${JELLY_SCRIPT,template=”text”}
HTML格式: ${JELLY_SCRIPT,template=”html”}
我服了,我把源码贴出来吧.....
public class Client {
//发送账单的数量,这个值是从数据库中获得
private static int MAX_COUNT = 6;
public static void main(String[] args) {
//模拟发送邮件
int i=0;
//把模板定义出来,这个是从数据库中获得
Mail mail = new Mail(new AdvTemplate());
mail.setTail("XX银行版权所有");
while(iMAX_COUNT){
//以下是每封邮件不同的地方
mail.setAppellation(getRandString(5)+" 先生(女士)");
mail.setReceiver(getRandString(5) + "@" + getRandString(8)+".com");
//然后发送邮件
sendMail(mail);
i++;
}
}
//发送邮件
public static void sendMail(Mail mail){
System.out.println("标题:"+mail.getSubject() + "\t收件人:"+mail.getReceiver()+"\t....发送成功!");
}
//获得指定长度的随机字符串
public static String getRandString(int maxLength){
String source ="abcdefghijklmnopqrskuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
StringBuffer sb = new StringBuffer();
Random rand = new Random();
for(int i=0;imaxLength;i++){
sb.append(source.charAt(rand.nextInt(source.length())));
}
return sb.toString();
}
}