发表于: 2018-01-02 23:39:00

1 381



今天完成的事情:

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.setContentsetText无效(或许是代码的顺序,后面内容覆盖前面的???)
       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





返回列表 返回列表
评论

    分享到