zoukankan      html  css  js  c++  java
  • Spring中javaMail通过SMTP发送邮件

    public final class Emails {

    /** The java mail sender. */
    private static JavaMailSender javaMailSender;

    /**
    * Send.
    *
    * @param emailData
    * the email data
    */
    public static void send(EmailConfig.EmailData emailData) {
    EmailOrSmsLogEntity emailOrSmsLogEntity = new EmailOrSmsLogEntity();
    emailOrSmsLogEntity.setMessageType(MessageType.Email);
    emailOrSmsLogEntity.revodeIp();
    try {
    JavaMailSender javaMailSender = mailDefaultSender();
    MimeMessage message = javaMailSender.createMimeMessage();
    MimeMessageHelper messageHelper = new MimeMessageHelper(message,
    true, Constants.DEFAULT_ENCODING);
    messageHelper.setFrom(emailData.getFrom());
    emailOrSmsLogEntity.setFrom(emailData.getFrom());
    messageHelper.setTo(emailData.to());
    emailOrSmsLogEntity.setTo(StringUtils.join(emailData.to(), ","));
    messageHelper.setSubject(emailData.getTitle());
    emailOrSmsLogEntity.setSubject(emailData.getTitle());
    messageHelper.setText(emailData.getContent(), true);
    emailOrSmsLogEntity.setText(emailData.getContent());
    Collection<File> files = emailData.getAttachment();
    if (files != null) {
    List<String> fileNames = Lists.newArrayList();
    for (File file : files) {
    messageHelper.addAttachment(file.getName(), file);
    fileNames.add(file.getName());
    }
    emailOrSmsLogEntity.addFeatures(EmailOrSmsLogEntity.FILETAG,
    StringUtils.join(fileNames, ","));
    }
    javaMailSender.send(message);
    emailOrSmsLogEntity.setSuccess(true);
    } catch (Exception e) {
    e.printStackTrace();
    emailOrSmsLogEntity.setSuccess(false);
    emailOrSmsLogEntity.setFailure(Throwables.getStackTraceAsString(e));
    }
    emailOrSmsLogEntity.createOrUpdate();
    }

    /**
    * Aysn send.
    *
    * @param emailData
    * the email data
    */
    public static void aysnSend(final EmailConfig.EmailData emailData) {
    SwingUtilities.invokeLater(new Runnable() {

    @Override
    public void run() {
    send(emailData);
    }
    });
    }

    /**
    * Mail default sender.
    *
    * @return the java mail sender
    */
    public static JavaMailSender mailDefaultSender() {
    return mailSender(SysConfigEntity.config());
    }

    /**
    * Mail sender.
    *
    * @param config
    * the config
    * @return the java mail sender
    */
    private static JavaMailSender mailSender(EmailConfig config) {
    JavaMailSender javaMailSender = mailSender();
    if (javaMailSender instanceof JavaMailSenderImpl && config != null) {
    JavaMailSenderImpl impl = (JavaMailSenderImpl) javaMailSender;
    if (config.getMailHost() != null)
    impl.setHost(config.getMailHost());
    if (config.getMailPost() != null)
    impl.setPort(config.getMailPost());
    if (config.getMailUserName() != null)
    impl.setUsername(config.getMailUserName());
    if (config.getMailPassWord() != null)
    impl.setPassword(CryptoUtils.aesDecryptFromHex(
    config.getMailPassWord(), KeyConstants.mailPassWord));
    }
    return javaMailSender;
    }

    /**
    * Mail sender.
    *
    * @return the java mail sender
    */
    private static JavaMailSender mailSender() {
    if (javaMailSender != null)
    return javaMailSender;
    synchronized (Emails.class) {
    javaMailSender = Utils.Container.getBean(JavaMailSender.class);
    }
    return javaMailSender;
    }

    }

  • 相关阅读:
    STM32F407 开发环境搭建 程序下载 个人笔记
    用bootstrap_table实现html 表格翻页
    STM32F407 正点原子 资料网址记录
    C51 动态数码管 个人笔记
    C51 继电器 个人笔记
    谷歌浏览器截长图
    C51 原创电子琴 (蜂鸣器/计时器/中断/矩阵按键)
    从零自学Hadoop(01):认识Hadoop
    Centos修改DNS重启或者重启network服务后丢失问题处理
    初次体验VS2015正式版,安装详细过程。
  • 原文地址:https://www.cnblogs.com/wjlstation/p/5639729.html
Copyright © 2011-2022 走看看