当前位置:   article > 正文

使用hutool工具发送带附件的邮件(特简单)_java hutools发送带附件邮件

java hutools发送带附件邮件

详细代码: https://download.csdn.net/download/qq3892997/86264195

pom.xml:

  1. <!-- javax.mail版本依赖于Springboot的版本 -->
  2. <dependency>
  3. <groupId>com.sun.mail</groupId>
  4. <artifactId>javax.mail</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>cn.hutool</groupId>
  8. <artifactId>hutool-all</artifactId>
  9. <version>5.7.19</version>
  10. </dependency>

发送邮件代码:

  1. public SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); //年月日 时分秒 周
  2. @Value("${ldt.system.mail}") //properties文件中定义的变量值(邮件发送者)
  3. String sender;
  4. @Value("${spring.mail.host}")
  5. String host;
  6. @Value("${spring.mail.port}")
  7. Integer port;
  8. //以上三个变量都在properties文件中定义,因此当前类必须使用@Component让spring托管,否则@Value是无法获取到配置文件的值,
  9. //如果huToolsendEmail方法被其他类引用了,那么需要使用@Resource引入当前类,请勿使用new xxx()的方法调用当前类的方法,因new对象不是spring托管也是无法获取到@Value的值的
  10. public void huToolsendEmail(String text, File file) {
  11. System.setProperty("mail.mime.splitlongparameters", "false");//设置系统值 ---处理文件名乱码
  12. MailAccount account = new MailAccount();
  13. account.setHost(host);
  14. account.setPort(port);
  15. // account.setAuth(true);//无用户名与密码就必须注释掉auth 否则报错
  16. account.setFrom(sender);//发送人
  17. Mail mail = Mail.create(account);
  18. mail.setFiles(file);//带附件
  19. mail.setTos("xxxx@xxx.com.xx");//收件人
  20. mail.setTitle("标题");
  21. mail.setContent("内容");//如果内容是Html格式,需要把mail.setHtml(true)设置未true,否则格式失效
  22. mail.setHtml(true);
  23. mail.send();
  24. }

如果huToolsendEmail方法所在类不在启动类同模块中,且不想添加注解扫描,那么使用以下类进行获取properties文件内容:

  1. package xxx..xxxxxxx.........xxxxx
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.Properties;
  5. /*获取properties文件中的值
  6. *
  7. * spring托管的类可以直接使用@Value获取到properties内的值,但因为需要在公共模块中写一个公共类获取properties的值,
  8. * 而公共模块意味着跟启动类不是同一个模块(重点是 不是同一个父文件夹),因此没办法被spring扫描到,需要在启动类中添加@MapperScan("xxx.xxx"),而又不想因为这一个类就去扫描这个文件夹
  9. *因此就抛弃了直接使用@Value获取properties值的方式,转而使用以下代码获取配置文件内容
  10. * */
  11. public class ResourceUtil {
  12. static Properties properties;
  13. static{
  14. properties=new Properties();
  15. InputStream in= ResourceUtil.class.getClassLoader().getResourceAsStream("application.properties");
  16. try {
  17. properties.load(in);
  18. if (in != null) {
  19. in.close();
  20. }
  21. } catch (IOException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. public static String getValue(String key){
  26. return properties.getProperty(key);
  27. }
  28. public static Properties getProperties(){
  29. return properties;
  30. }
  31. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/932842
推荐阅读
相关标签
  

闽ICP备14008679号