public String toString() {
return “EmailConfig{” +
“host='” + host + ‘’’ +
“, username='” + username + ‘’’ +
“, password='” + password + ‘’’ +
“, senderName='” + senderName + ‘’’ +
‘}’;
}
}
@Autowired
private EmailConfig emailConfig;
/**
-
发送带附件的邮件
-
@param from 发件人
-
@param receive 收件人
-
@param subject 邮件主题
-
@param msg 邮件内容
-
@param filename 附件地址
*/
public void sendMailForFile(String from, String receive, String subject, String msg, String filename){
if (StringUtils.isEmpty(receive)) {
throw new MyException(“收件人邮箱号不能为空”);
}
//1、创建邮件对象
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
//2、发邮件人邮箱
javaMailSender.setUsername(emailConfig.getUsername());
//3、发邮件人邮箱密码(默认使用客户端的授权码)
javaMailSender.setPassword(emailConfig.getPassword());
//4、设置邮件服务器主机名 SMTP服务器地址
javaMailSender.setHost(emailConfig.getHost());
//5、SMTP服务器: 默认端口 换成腾讯云服务器后,需要将端口换成465
// javaMailSender.setPort(465);
javaMailSender.setPort(25);
//6、//发送邮件协议名称
javaMailSender.setProtocol(“smtp”);
//7、编码格式
javaMailSender.setDefaultEncoding(“UTF-8”);
//8、创建连接对象,连接到邮箱服务器
Properties mailProperties = new Properties();
//发送服务器需要身份验证,要采用指定用户名密码的方式去认证
mailProperties.put(“mail.smtp.auth”, true);
mailProperties.put(“mail.smtp.starttls.enable”, true);
//9、添加连接对象到邮件对象中
javaMailSender.setJavaMailProperties(mailProperties);
try {
// 得到默认的对话对象
Authenticator a = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(emailConfig.getUsername(), emailConfig.getPassword());
}
};
Mim 需要zi料+ 绿色徽【vip1024b】
eMessage message = getMimeMessage(mailProperties,a,emailConfig.getUsername(),from, receive, subject, msg, filename);
javaMailSender.send(message);
// 发送消息
// Transport.send(message);
System.out.println(“Sent message successfully…”);
} catch (Exception e) {
e.printStackTrace();
log.error(“发送失败{}”,e.getMessage());
}
}
private MimeMessage getMimeMessage(Properties props,Authenticator a ,String from,String fromEmail, String receive, String subject, String msg, String filename) throws MessagingException, UnsupportedEncodingException {
// 创建默认的 MimeMessage 对象
//创建Session实例
Session session = Session.getDefaultInstance(props, a);
session.setDebug(true);
//创建MimeMessage实例对象
MimeMessage message=new MimeMessage(session);
//设置自定义发件人昵称
String nick=“”;
try {
// nick=javax.mail.internet.MimeUtility.encodeText(“luminescience”);
if(StringUtil.isNotNull(fromEmail)){
nick=javax.mail.internet.MimeUtility.encodeText(fromEmail);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
message.setFrom(new InternetAddress(nick+" <“+from+”>"));
// Set From: 头部头字段
// message.setFrom(new InternetAddress(from));
// Set To: 头部头字段
总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
[外链图片转存中…(img-rLlRRICu-1710352052640)]