java不使用客户端授权密码直接用账号密码发送带附件的邮件

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)]

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值