邮件(email)

news/2024/11/8 0:33:16/

邮件–发送邮件

1.准备工作

1.1.生成查长度为4的验证码

package com.Li.bc;import java.util.Arrays;
import java.util.Collections;
import java.util.List;import javax.naming.spi.DirStateFactory.Result;/*** @desc 产生验证码的工具类* @author Li Ya Hui * @time   2021年6月17日 下午2:43:23*/
public class CodeUtils {public static void main(String[] args) {createCode();}/*** @desc 1.产生长度为4位的验证码* @return	*/public static String createCode() {//创建一个字符串数组String beforeShuffle [] = new String[] { "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; //字符串数组转成listList<String> list = Arrays.asList(beforeShuffle);//创建一个线程安全字符串StringBuilder sb = new StringBuilder();//将一个list里的数据进行洗牌 也就是乱序Collections.shuffle(list);//遍历添加到字符串中for (String s : list) {sb.append(s);}//将stringbuilder字符串转字符String afterShuffle = sb.toString();//将字符串截取第6个到第9个  6,7,8,9String result = afterShuffle.substring(5, 9);System.out.println(result);return result;}
}

1.2.日期处理工具类

package com.Li.bc.dates;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;/*** @desc   日期处理的工具类* @author Li Ya Hui * @time   2021年6月17日 下午3:42:12*/
public class DateUtils {public static void main(String[] args) throws ParseException {//生日日期String dateStr = "2019-12-11";Date now = new Date();SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");String dateStr2 = format.format(now);System.out.println(dateStr2);System.out.println(dateStr);int day = differentDaysByMillionSeconds(dateStr, dateStr2);System.out.println(day);}public static int differentDaysByMillionSeconds(String dateStr , String dateStr2) throws ParseException {//1.初始化SimpleDateFormat 类SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//2.将传入的日期准备为日期类型Date fDate = (Date) format.parse(dateStr);Date oDate = (Date) format.parse(dateStr2);//初始化日历工具类Calendar calendar = Calendar.getInstance();//4.计算两个日期相差的天数calendar.setTime(fDate);//计算出第一个日期的天数int day1 = calendar.get(Calendar.DAY_OF_YEAR);calendar.setTime(oDate);//计算出第二个日期的天数int day2 = calendar.get(Calendar.DAY_OF_YEAR);return day2 - day1;}
}

1.3.properties配置文件处理类

  1. 创建一个config文件夹,且该文件夹与src是平级的,且权限也是与src的级别一样(要构建权限级别),在该目录下创建mail.properties

  2. 在mail.properties写入一些数据
    emailFrom=java01_plus@163.com
    emialFromAuthorization=wyh2019
    emailRole=XX管理系統

PS:在mail,properties中要对该文件设定编码集为UTF-8,且不要再里面有过多的空格和换行

package com.Li.utils;
/*** @desc   解析属性配置文件的工具类* @desc   解析属性配置文件(mail.properties)* @author Li Ya Hui * @time   2021年6月17日 下午4:27:08*/import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;public class PropertuUtils {/** public static void main(String[] args) throws IOException {* * String propertyPath = "mail.properties"; Map<String, Object> map =* getInfoFromProperties(propertyPath); System.out.println(map); }*//*** @throws IOException * @desc   1.解析获取Mail.properties中的数据*/public static Map<String, Object> getInfoFromProperties( String propertyPath) throws IOException{//1.创建一个map用与装入解析获取到的数据Map<String, Object> map = new HashMap<String, Object>();//2.初始化propertiesProperties props = new Properties();//3.解析:将mail.properties文件转变为输入流对象  这个获取文件的区别在去可以去class路径里获取属性文件	InputStream inputStream = PropertuUtils.class.getClassLoader().getResourceAsStream(propertyPath);//4.将流对象读取到缓冲区中BufferedReader buffereReader = new BufferedReader(new InputStreamReader( inputStream , "utf-8"));//5.加载缓存区读对象props.load(buffereReader);//6.读取并得到一个迭代器Iterator<String> it = props.stringPropertyNames().iterator();//7.将得到的值变为map形式while (it.hasNext()) {String key = (String) it.next();map.put(key, props.getProperty(key));}return map;}
}

1.4.可以执行简单发生邮件的 邮件工具类

package com.Li.bc.email;import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;/*** @desc 可以执行简单发生邮件的 邮件工具类* @author Li Ya Hui * @time   2021年6月17日 下午8:27:08*/
public class EmailUtils {//自己的邮箱public static String sendEmailAccount = "liyahui0702@163.com" ;//邮箱授权码public static String sendEmailPwd = "CNMBLTOESPBQLZEM" ; //收件人邮箱public static String receiveMailAccount = "969607885@qq.com";//public static void main(String[] args) throws UnsupportedEncodingException, MessagingException {createMimeMessage( sendEmailAccount , receiveMailAccount );}/*** @throws MessagingException * @throws UnsupportedEncodingException * @desc 1. 创建一封简单的邮件*/public static void createMimeMessage( String sendMail , String receviceMail ) throws MessagingException, UnsupportedEncodingException {//1.创建参数配置, 用于连接邮件服务器的参数配置Properties props = new Properties();props.setProperty("mail.transport.protocol","smtp");// 使用的协议(JavaMail规范要求)props.setProperty("mail.smtp.host","smtp.163.com"); // 发件人的邮箱的 SMTP 服务器地址props.setProperty("mail.smtp.auth", "true");    // 需要请求认证//2.创建session会话对象 根据配置创建会话对象, 用于和邮件服务器交互Session session = Session.getInstance(props);//开启debug调试的模式,可以打印出发送的logsession.setDebug(true);//3.创建一封邮件	MimeMessage message = new MimeMessage(session);//4.设定发件人			//address 子类   发送者邮箱     发送者昵称     内容编码message.setFrom( new InternetAddress(sendMail, "发送者的昵称", "utf-8"));//5.设置收件人To: 收件人(可以增加多个收件人、抄送、密送)    CC:抄送人 , BCC:密送message.setRecipient(RecipientType.TO , new InternetAddress( receviceMail , "接收人" , "utf-8"));//6. Subject: 邮件主题(标题有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改标题)message.setSubject("这是我的第一封邮件");//7.Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改发送内容)message.setContent("正文内容:Hello Email", "text/html;charset=utf-8");//8.设置发件时间message.setSentDate(new Date());//9.保存设置message.saveChanges();//10.根据 Session 获取邮件传输对象Transport transport = session.getTransport();//11.  链接上SMTP邮件服务器  自己的邮箱       邮箱授权码transport.connect(sendEmailAccount,sendEmailPwd);//12.发送邮件		 	  发送信息     发送人,所有收件人 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人transport.sendMessage(message, message.getAllRecipients());System.out.println("发送成功");//13.关闭连接transport.close();} // 5. 使用//开启debug调试的模式,可以打印出发送的log//session.setDebug(true);////    PS_01: 成败的判断关键在此一句, 如果连接服务器失败, 都会在控制台输出相应失败原因的 log,//           仔细查看失败原因, 有些邮箱服务器会返回错误码或查看错误类型的链接, 根据给出的错误//           类型到对应邮件服务器的帮助网站上查看具体失败原因。////    PS_02: 连接失败的原因通常为以下几点, 仔细检查代码://           (1) 邮箱没有开启 SMTP 服务;//           (2) 邮箱密码错误, 例如某些邮箱开启了独立密码;//           (3) 邮箱服务器要求必须要使用 SSL 安全连接;//           (4) 请求过于频繁或其他原因, 被邮件服务器拒绝服务;//           (5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。////    PS_03: 仔细看log, 认真看log, 看懂log, 错误原因都在log已说明。
}

http://www.ppmy.cn/news/333066.html

相关文章

如何发送电子邮件到别人邮箱?

现如今&#xff0c;无论两人之间的距离有多远&#xff0c;都可以通过很多种方式完成信息的即时传递&#xff0c;而电子邮件就是其中一种方式。人们不仅可以传输文字信息&#xff0c;还能传输图片、视频等多种格式的信息。那么&#xff0c;如何发送电子邮件到别人的邮箱&#xf…

2.4 电子邮件(Email)

一.概述 电子邮件系统由三部分组成:用户代理(如客户端outlook ),邮件服务器&#xff0c;协议(用于发送邮件:SMTP&#xff0c;用于拉取邮件:POP3,IMAP, HTTP )。 二.邮件发送过程 #mermaid-svg-p3SzxqsnMKot2LWL .label{font-family:trebuchet ms, verdana, arial;font-family:v…

下载附件

(作者&#xff1a;饶家俊&#xff0c;撰写时间&#xff1a;201年5月13号) 我要介绍的是下载附件&#xff0c;什么是下载附件&#xff0c;是从有些表格里面&#xff0c;附带的附件信息&#xff0c;点击之 后就在左下弹出来&#xff0c;点击里面就是一张图片&#xff0c;因为上传…

电子邮件控件Aspose.Email V17.9发布 | 附下载

Aspose.Email for .NET 17.9 更新 功能和改进 核心概述类别EMAILNET-38808由Aspose产生的PST大小更大Bug修复EMAILNET-38806Aspose.Email在消息中有额外的换行符时无法处理EML文件Bug修复EMAILNET-38807EML到EMLx&#xff1a;生成的邮件正文在Apple Mail中不可见Bug修复EMAILN…

mail ru android,mail ru app下载

Mail Ru邮箱是非常好用的手机邮箱&#xff0c;可以让用户在APP上面登录并管理多个不同的邮箱软件的账号&#xff0c;让用户轻松接受不同邮箱的邮件&#xff0c;更加好用的功能帮助用户体验最方便的邮箱。 mail ru app简介 Mail.Ru的官方邮件应用程序。Convenient Mail for smar…

电子邮件(二)

书外资料 flask-mail中文文档 配置 Flask-Mail 发送邮件 大量邮件 附件 单元测试以及禁止发送邮件 发送邮件 为了能够发送邮件&#xff0c;首先需要创建一个 Message 实例: from flask_mail import Messageapp.route("/") def index():msg Message("Hel…

使用javaMail收邮件 支持附件下载

javaMail 发送 复杂 邮件 附件 使用javaMail收邮件主要有两种协议&#xff0c;一种是pop3&#xff0c;一种是imap。这两种协议都可以用来收邮件&#xff0c;但是在其中的处理上是有区别的。pop3是不支持判断邮件是否为已读的&#xff0c;也就是说你不能直接从收件箱里面取到未读…

电邮里面是图片怎么下载_什么是电子邮件| 第三部分

电邮里面是图片怎么下载 电子邮件和法律 (Email and law) With the development of the Internet as indispensable working tool, litigation related to its use in the workplace was developed concurrently. The French judge was asked repeatedly about the rights of t…