首页 技术 正文
技术 2022年11月14日
0 收藏 699 点赞 4,131 浏览 5600 个字

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);
}
}

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,997
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,511
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,355
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,138
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848