发表于: 2018-01-02 23:39:00
1 382
今天完成的事情:
1. 配置服务器环境
2.跑通 STMP的发送附件的dome
明天计划的事情
1. Spring+Quartz 的dome
2. 注册统计需要的字段统计 出来
3.
遇到的问题:
无
收获:
1. 配置服务器环境
/data/service 放的是service的需要的lib
/data/webs/ 放的是war和容器,日志,启动脚本
/data/svn放的是svn上下载的代码,并编译打包
/data/deploy 放的是脚本文件
/data/sql 放的是sql文件备份
nginx的service.conf配置 项目nginx的专属配置文件目录
2.跑通 STMP的发送附件的dome
@Test
public void email() throws Exception {
//跟smtp服务器建立一个连接
final Properties properties = new Properties();
// 开启debug调试,以便在控制台查看
properties.setProperty("mail.debug", "false");
properties.setProperty("mail.host", "smtpdm.aliyun.com");//指定邮件服务器,默认端口 25
properties.setProperty("mail.smtp.auth", "true");//要采用指定用户名密码的方式去认证
// 发送邮件协议名称
properties.setProperty("mail.transport.protocol", "smtp");
// 发件人的账号
properties.put("mail.user", "biaoliang@email.rcy9527.top");
// 访问SMTP服务时需要提供的密码
properties.put("mail.password", "QWEasd123456");
// 构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名、密码
String userName = properties.getProperty("mail.user");
String password = properties.getProperty("mail.password");
System.out.println(userName + password);
return new PasswordAuthentication(userName, password);
}
};
// 创建session,使用环境属性和授权信息,创建邮件会话
Session session = Session.getInstance(properties,authenticator);
// 通过session得到transport对象
// Transport ts = session.getTransport();
// ts.connect("smtpdm.aliyun.com",25,"biaoliang@email.rcy9527.top","QWEasd123456");
//声明一个Message对象(代表一封邮件),从session中创建
MimeMessage msg = new MimeMessage(session);
//邮件信息封装
//1发件人
msg.setFrom( new InternetAddress("biaoliang@email.rcy9527.top") );
//2.1收件人
msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("306273754@qq.com") );
//2.1.1多个收件人
msg.setRecipients(MimeMessage.RecipientType.TO, InternetAddress.parse("995812509@qq.com,1247723213@qq.com"));
//2.2抄送
msg.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress("aaaaaa@163.com"));
//2.3暗送人
msg.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress("bbbbbbb@163.com"));
//3邮件内容:主题、内容
msg.setSubject("这是我用Java发来的邮件--带附件的....");
// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
Multipart multipart = new MimeMultipart();
//添加附件部分
//邮件内容部分1---文本内容
BodyPart contentPart1 = new MimeBodyPart();
//头部
contentPart1.setHeader("Content-Type", "text/html; charset=UTF-8");
//若有contentPart1.setContent则setText无效(或许是代码的顺序,后面内容覆盖前面的???)
contentPart1.setText("setText");
contentPart1.setContent("呵呵呵","text/html; charset=UTF-8");
//在Multipart里添加内容1
multipart.addBodyPart(contentPart1);
//邮件内容部分2---附件1
MimeBodyPart body1 = new MimeBodyPart(); //附件1
//读取文件
File file = new File("C:/Users/Administrator/Desktop/JAVA/SpringAop.rar");
//获取文件源
DataSource dataSource = new FileDataSource(file);
//把附件加入 部分2里
body1.setDataHandler(new DataHandler(dataSource));
//重命名文件名,病防止乱码
body1.setFileName(MimeUtility.encodeWord("spring-的aop.rar"));
multipart.addBodyPart(body1);
// 将multipart对象放到message中
msg.setContent(multipart);
msg.saveChanges();
// 连接邮件服务器、发送邮件、关闭连接,全做了
Transport.send(msg);
}
代码大致分为2部分
1. 设定部分
设定stmp的账号密码,发送使用的协议,主机地址,发件人,收件人,抄送人,暗送人,端口号,是否打印debug信息等
2. 正文主题部分
可以分为2小部分
2.1 文字部分/图片部分等,可以在邮件里直接显示的部分
2.2附件
MimeBodyPart body = new MimeBodyPart();
通过以上代码创建一个body 写入正文,文章的编码等
在new 一个,加入附件。
添加到multipart里
Multipart multipart = new MimeMultipart();
任务进度:等最后的统计注册需要的字段出来后确定DB,就开始写代码部分
DOME时间:2018-2-9
评论