**前言:**其实写这篇文章的时候我内心挺复杂的,所以这篇文章主要部分记录自己的反思,因为发送邮件的知识点不多,就那么一点套路,模板直接就可以用,我把它放文章的最下面。
我抵抗不住诱惑。现在是23:47,两个室友在打游戏,还有一个室友在学教资,是的后天是10.30号,我也报了教资,但是到今天为止,我只学了科三和科一,而且只是简单的过了一遍,并没有花时间去背知识点和练题…怎么说呢?人都是有惰性的吧,我也一样,暑假自己一个人在家,生活作息都很有规律,每天听网课敲代码,也不会觉得枯燥无味,那段时间真的是很认真很认真的去学习。我以为这种状态会持续很久很久,我也幻想着开学后努力的样子:晚上准时准点的睡觉,然后早上早起去学习。但是想象终归是想象,开学后我确实按照在家的习惯敲了好几天代码,但是也就是这好几天,我再一次的开始的我的惰。就把我的认真学习时间算作一周吧(实际上只有两三天),我们是10月8号开的学,现在是10月28日,整整三周,前一周我在学习,而剩下的两周,我是早上睡到8点多,晚上玩到夜里两点半,白天昏昏沉沉仿佛回到高中的时候。我讨厌这样的自己,却又再一次的屈服于现实。是的,我抵抗不住诱惑,稍微有那么一点点吸引我,我就放飞自我。
为什么要考教资呢?。今天早上起来的时候已经八点多了,起来第一件事是坐在桌子前做几套教资试卷,是的,后天就要考教资了,但是我不慌,不是因为我已经复习好了,而是备考这段时间我也想了想自己的未来。我的未开跟考教资有关系吗?答案是有,但是关系不大。那么我就要去考虑一个问题:**为什么要考教资呢?**起初的想法是准备给自己一条后路,因为程序员是个年龄饭,随着年龄的增大,学习能力以及记忆力会下降,这样的话,在公司和求职的过程中就是处于一种劣势的状态,这时候很多程序员就会选择转行,当然也有一小部分的人在竞争中留存下来。思考出的结果是:我不该去报考教资
我不该去报考教资。为什么我不该去报考教资呢?因为在我的想法中,从来就没有打算去当老师,从始至终都没有当老师的这种想法,报考教资算是一种盲目的跟风行为。这里这样说并不是为自己的行为开脱,而是我的想法一直就是这样,只不过有时候思路很混沌罢了,有时候我也不知道自己想的是什么,自己想要的是什么。为什么我一直以来的想法不是当老师呢?第一:教师这个工作不是很自由,我喜欢的工作应是自由的;第二:教师这个行业是有瓶颈的,没有创新,而我偏偏是很喜欢创新的,总是有一些想法想要去实现;第三:教师的工资稳定但不高,作为一个男生,想要养家糊口,单单凭靠教师的死工资是不行的,毕竟一家老小都要自己去养活。从这三点基本上就把不当老师的原因说的清清楚楚了,所以对于后天的考试,我真的不担心。
**对于教资考试,我应该懈怠吗?**答案是不,虽然我不担心考试的结果,但是,我也准备了有那么点时间了,虽然掌握的知识不多,但是时间上的消耗如果不寻求一个结果就真的是浪费时间了,所以这个考试不会懈怠,并且要很重视,作为检验自己的一个机会。所以说,明天我会努力复习,最后一天的冲刺
窥探内心的真实想法,我一直揣测自己的内心,到底要不要考研?一直都很迷茫,相信到我这个阶段的时候你也会处于一种迷茫的状态。我们这个专业很好找工作,尤其掌握前沿技术的人。我很喜欢敲代码(以前不喜欢),每当敲出自己想要的程序就很有成就感,那么我到底是专心研究技术呢还是要去考研呢?说实在的,我并不想考研,我很想专心研究代码,然后踏入社会找工作。但是现在很多高薪职位都要求学历,我真的是搞不明白,如果一个人的技术真正的达到一定的境界,跟他自己的学历有关系吗?家里一直给我说考研的事,说现在这种社会,大学生遍地都是,不考研根本不行。就这样,我一直很纠结,我有时会告诉自己,我还是考研吧,很无奈,真的无奈。我很想证明不考研也能打拼出自己的一片天地,但是我没有勇气,因为我知道这就是现实,真实的社会。
**我打算考研,不妥协这个社会。**考研就要放弃自己当前的技术研究吗?很多人告诉我,假如你打算考研的话,那你现在就准备考研的事情吧,不要再去研究什么前沿技术,转新去考研。我偏不,研究技术是我的兴趣,没有兴趣学习就像行尸走肉,是没有感情的复读机器,我才不要成为一台机器。我要边研究边考研,当然大部分时间还是放在准备考研上。具体计划我还没有想好,但是初步的想法就是认真准备去考研,同时提升自己的技术,保证不落后。
**怎样抵挡诱惑?**如上所述,一点点诱惑就让我放飞自我,但是我自己在家的时候又怎么能静下心来学习呢?人与人是不一样的,有的人是耐不住寂寞,学习需要陪伴,有的人越安静越冷静,而我应该就是后者吧。所以,当我定好目标和详细的备考计划时,我会出去租房住,一个人安安静静的学习。这段时间我也想清楚了一句话,大佬总是孤独的。虽然我并不是什么大佬,但是我对这句话也有那么一点体会,当你懂得越多,你会发现想找一个和你交流的人就很难,甚至根本早不到一个能和你交流的人。
反思结束,下面是发送邮件的笔记代码
用得到的jar包
<dependency>
<groupId>javax.mailgroupId>
<artifactId>mailartifactId>
<version>1.4.7version>
dependency>
package cn.daitools;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.Properties;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
//创建一个邮件
/**
*
* java实现邮箱发送邮件功能
*
*
* @author WQ
*
*/
public class demo01 {
public static void main(String[] args) throws Exception {
// 1. 创建一封邮件
Properties props = new Properties();
// 用于连接邮件服务器的参数配置(发送邮件时才需要用到)
Session session= Session.getInstance(props); // 根据参数配置,创建会话对象(为了发送邮件准备的)
MimeMessage message = new MimeMessage(session); // 创建邮件对象
/*
* 也可以根据已有的eml邮件文件创建 MimeMessage 对象
* MimeMessage message = new MimeMessage(session, new FileInputStream("MyEmail.eml"));
*/
// 2. From: 发件人
// 其中 InternetAddress 的三个参数分别为: 邮箱, 显示的昵称(只用于显示, 没有特别的要求), 昵称的字符集编码
// 真正要发送时, 邮箱必须是真实有效的邮箱。
message.setFrom(new InternetAddress("[email protected]", "USER_AA", "UTF-8"));
// 3. To: 收件人
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("[email protected]", "USER_CC", "UTF-8"));
// To: 增加收件人(可选)
message.addRecipient(MimeMessage.RecipientType.TO, new InternetAddress("[email protected]", "USER_DD", "UTF-8"));
// Cc: 抄送(可选)
message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress("[email protected]", "USER_EE", "UTF-8"));
// Bcc: 密送(可选)
message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress("[email protected]", "USER_FF", "UTF-8"));
// 4. Subject: 邮件主题
message.setSubject("TEST邮件主题", "UTF-8");
// 5. Content: 邮件正文(可以使用html标签)
message.setContent("TEST这是邮件正文。。。", "text/html;charset=UTF-8");
// 6. 设置显示的发件时间
message.setSentDate(new Date());
// 7. 保存前面的设置
message.saveChanges();
// 8. 将该邮件保存到本地
OutputStream out = new FileOutputStream("MyEmail.eml");
message.writeTo(out);
out.flush();
out.close();
}
}
package cn.daitools;
import com.sun.mail.util.MailSSLSocketFactory;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.util.Properties;
public class demo02 {
public static void main(String[] args) throws GeneralSecurityException, MessagingException, UnsupportedEncodingException {
//配置邮箱连接信息
Properties prop = new Properties();
prop.setProperty("mail.host","smtp.qq.com");
prop.setProperty("mail.transport.protocol","smtp");
prop.setProperty("mail.smtp.auth","true");
//设置ssl加密
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable","true");
prop.put("mail.smtp.ssl.socketFactory",sf);
//1、创建发送邮件的Seeeion环境
Session session = Session.getDefaultInstance(prop, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//发件人,授权码
return new PasswordAuthentication("[email protected]","tujcblipdrbngaef");
}
});
// //开启发送邮件的Debug模式
// session.setDebug(true);
//2、通过Session对象得到transport对象
Transport ts = session.getTransport();
//3、使用用户名和授权码连上邮箱服务器
ts.connect("smtp.qq.com","[email protected]","tujcblipdrbngaef");
//4、创建邮件
//需要传递Session
MimeMessage message = new MimeMessage(session);
//指明发件人
message.setFrom(new InternetAddress("[email protected]","网站注册","utf-8"));
//指明邮件的收件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress("[email protected]"));
//设置邮件的标题
message.setSubject("验证码");
//准备正文数据
MimeBodyPart textbody = new MimeBodyPart();
textbody.setContent("code","text/html;charset=utf-8");
//描述数据关系
MimeMultipart mm =new MimeMultipart();
mm.addBodyPart(textbody);
mm.setSubType("related");
//将拼装好的mm图文设置为主题
MimeBodyPart contentText = new MimeBodyPart();
contentText.setContent(mm);
//设置消息,保存修改
message.setContent(mm);
message.saveChanges();
//5、发送邮件
ts.sendMessage(message,message.getAllRecipients());
//6、关闭连接
ts.close();
}
}
package cn.daitools;
import com.sun.mail.util.MailSSLSocketFactory;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
/*发送一封简单邮件*/
public class demo03 {
public static void main(String[] args) throws Exception {
/*配置基本信息*/
String fromAddress = "[email protected]"; /*发件人*/
String token = "tujcblipdrbngaef"; /*授权码*/
String toAddress = "[email protected]"; /*收件人*/
String mailHost = "smtp.qq.com"; /*邮箱服务器*/
/*创建一个对象,表示邮件服务器的信息*/
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.qq.com"); //设置QQ邮件服务器
prop.setProperty("mail.transport.protocol", "smtp"); // 邮件发送协议
prop.setProperty("mail.smtp.auth", "true"); // 需要验证用户名密码
/*进行ssl安全验证*/
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
/*创建Session对象,可想想象成办了一张手机卡*/
Session session = Session.getDefaultInstance(prop, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名、授权码
return new PasswordAuthentication(fromAddress, token);
}
});
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
/*通过Session获得一个对象用来发送消息,可以理解成获得一个插了手机卡的手机*/
Transport ts = session.getTransport();
ts.connect(mailHost,fromAddress,toAddress);
/*手机拿到了,下面可以发送邮件了
* 创建一封邮件*/
MimeMessage msg = new MimeMessage(session);
/*指明发件人*/
msg.setFrom(new InternetAddress(fromAddress,"呆呆","utf-8"));
/*指明收件人*/
msg.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(toAddress));
/*设置邮件的标题*/
msg.setSubject("简单邮件测试");
/*设置邮件的内容*/
msg.setContent("大家好,我是呆呆","text/html;charset=utf-8");
/*发送邮件*/
ts.sendMessage(msg,msg.getAllRecipients());
/*关闭连接*/
ts.close();
}
}
package cn.daitools;
import com.sun.mail.util.MailSSLSocketFactory;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
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 java.io.FileReader;
import java.util.Properties;
//发送文本+图片
public class demo04 {
public static void main(String[] args) throws Exception {
/*配置基本信息*/
String fromAddress = "[email protected]"; /*发件人*/
String token = "tujcblipdrbngaef"; /*授权码*/
String toAddress = "[email protected]"; /*收件人*/
String mailHost = "smtp.qq.com"; /*邮箱服务器*/
/*创建一个对象,表示邮件服务器的信息*/
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.qq.com"); //设置QQ邮件服务器
prop.setProperty("mail.transport.protocol", "smtp"); // 邮件发送协议
prop.setProperty("mail.smtp.auth", "true"); // 需要验证用户名密码
/*进行ssl安全验证*/
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
/*创建Session对象,可想想象成办了一张手机卡*/
Session session = Session.getDefaultInstance(prop, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名、授权码
return new PasswordAuthentication(fromAddress, token);
}
});
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
/*通过Session获得一个对象用来发送消息,可以理解成获得一个插了手机卡的手机*/
Transport ts = session.getTransport();
ts.connect(mailHost,fromAddress,toAddress);
/*手机拿到了,下面可以发送邮件了
* 创建一封邮件*/
MimeMessage msg = new MimeMessage(session);
/*指明发件人 发件人地址,发件人昵称,编码对象*/
msg.setFrom(new InternetAddress(fromAddress,"daidai","utf-8"));
/*指明收件人*/
msg.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(toAddress));
/*设置邮件的标题*/
msg.setSubject("简单邮件测试");
/*设置邮件的内容*/
/*============================*/
/*创建邮件的一部分为图片*/
final MimeBodyPart body1 = new MimeBodyPart();
body1.setDataHandler(new DataHandler(new FileDataSource("img/1.png")));
body1.setContentID("1.png");
/*准备正文数据*/
final MimeBodyPart body2 = new MimeBodyPart();
body2.setContent("
","text/html;charset=utf-8");
/*描述数据关系*/
final MimeMultipart context = new MimeMultipart();
context.addBodyPart(body2);
context.addBodyPart(body1);
context.setSubType("related");
/*设置到消息中并保存修改*/
msg.setContent(context);
msg.saveChanges();
/*============================*/
/*发送邮件*/
ts.sendMessage(msg,msg.getAllRecipients());
/*关闭连接*/
ts.close();
}
}
注意:由于一些协议规则,附件的大小被限制在20m以内,所以20m以上的附件就会报异常
package cn.daitools;
import com.sun.mail.util.MailSSLSocketFactory;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.*;
import java.util.Properties;
//发送附件
public class demo05 {
public static void main(String[] args) throws Exception {
/*配置基本信息*/
String fromAddress = "[email protected]"; /*发件人*/
String token = "tujcblipdrbngaef"; /*授权码*/
String toAddress = "[email protected]"; /*收件人*/
String mailHost = "smtp.qq.com"; /*邮箱服务器*/
/*创建一个对象,表示邮件服务器的信息*/
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.qq.com"); //设置QQ邮件服务器
prop.setProperty("mail.transport.protocol", "smtp"); // 邮件发送协议
prop.setProperty("mail.smtp.auth", "true"); // 需要验证用户名密码
/*进行ssl安全验证*/
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
/*创建Session对象,可想想象成办了一张手机卡*/
Session session = Session.getDefaultInstance(prop, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名、授权码
return new PasswordAuthentication(fromAddress, token);
}
});
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
/*通过Session获得一个对象用来发送消息,可以理解成获得一个插了手机卡的手机*/
Transport ts = session.getTransport();
ts.connect(mailHost,fromAddress,toAddress);
/*手机拿到了,下面可以发送邮件了
* 创建一封邮件*/
MimeMessage msg = new MimeMessage(session);
/*指明发件人 发件人地址,发件人昵称,编码对象*/
msg.setFrom(new InternetAddress(fromAddress,"daidai","utf-8"));
/*指明收件人*/
msg.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(toAddress));
/*设置邮件的标题*/
msg.setSubject("简单邮件测试");
/*设置邮件的内容*/
/*============================*/
/*创建邮件的一部分为图片*/
final MimeBodyPart body1 = new MimeBodyPart();
body1.setDataHandler(new DataHandler(new FileDataSource("img/1.png")));
body1.setContentID("1.png");
/*准备正文数据*/
final MimeBodyPart body2 = new MimeBodyPart();
body2.setContent("
","text/html;charset=utf-8");
/*封装图文信息*/
final MimeMultipart context = new MimeMultipart();
context.addBodyPart(body2);
context.addBodyPart(body1);
context.setSubType("related");
/*将图文设置为内容的一部分*/
final MimeBodyPart body3 = new MimeBodyPart();
body3.setContent(context);
/*添加一个附件*/
final MimeBodyPart body4 = new MimeBodyPart();
body4.setDataHandler(new DataHandler(new FileDataSource("D:\\desktop\\待整理\\抖音下载助手V1.0.zip")));
body4.setFileName(MimeUtility.encodeText("抖音下载助手V1.0.zip")); //使用工具包进行文件名转码,防止中文乱码
/*最后封装整个邮件信息*/
final MimeMultipart mail = new MimeMultipart();
mail.addBodyPart(body3);
mail.addBodyPart(body4);
mail.setSubType("mixed");
/*设置到消息中并保存修改*/
msg.setContent(mail);
msg.saveChanges();
/*============================*/
/*发送邮件*/
ts.sendMessage(msg,msg.getAllRecipients());
/*关闭连接*/
ts.close();
}
}
今天的记录到此结束,晚安!