zhaojian0910 2015-10-12 06:39 采纳率: 0%
浏览 2373

多线程发送邮件问题,日志没有报错,但是发送邮件未执行

代码直行到
// 发送器
JavaMailSenderImpl sender = new JavaMailSenderImpl();
这个地方的时候就停止了,也没有报任何错。不太清楚是哪里的问题,请高手帮忙看看

 package com.hhsoft.sectionTimerTask.util;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.hhsoft.sectionTimerTask.model.dto.EmailDto;
import com.hhsoft.sectionTimerTask.service.EmailSendService;

public class SendEmailThread implements Runnable
{
    private static Logger loger = LoggerFactory.getLogger(SendEmailThread.class);

    private String title;
    private String content;
    private String receiveAddr;
    private String ccAddr;
    private List<File> attachments;
    public SendEmailThread(EmailDto email, EmailSendService service)
    {
        this.email = email;
        this.service = service;
    }

    public SendEmailThread(String title, String content, String receiveAddr, String ccAddr, List<File> attachments)
    {
        this.title = title;
        this.content = content;
        this.receiveAddr = receiveAddr;
        this.ccAddr = ccAddr;
        this.attachments = attachments;
    }

    @Override
    public void run()
    {       
        System.out.println("fasong开始");
        Properties p = new Properties();

        // 读取邮件配置文件
        InputStream is = EmailSendService.class.getResourceAsStream("/properties/email-setting.properties");
        try
        {
            p.load(is);
        } catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // 发送邮件的host
        String host = p.getProperty("host");
        // 发送邮件的port
        String port = p.getProperty("port");
        // 发送邮件的username
        String username = p.getProperty("username");
        // 发送邮件的password
        String password = p.getProperty("password");
        // 发送邮件的地址,即管理员帐号的address
        String sendFrom = p.getProperty("sendFrom");
        // 发送邮件人的昵称
        String nickname = p.getProperty("nickname");
        System.out.println(nickname);
        // 发送器
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost(host);
        sender.setPort(Integer.parseInt(port));
        sender.setUsername(username);
        sender.setPassword(password);
        sender.setDefaultEncoding("UTF-8");

        // // 配置文件对象
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        Session session = Session.getInstance(props);
        sender.setSession(session); // 为发送器指定会话

        MimeMessage mail = sender.createMimeMessage();
        MimeMessageHelper helper;
        try
        {
            helper = new MimeMessageHelper(mail, true);
            // 收件方
            helper.setTo(receiveAddr);

            // 标题
            helper.setSubject(title);

            // 邮件内容,第二个参数指定发送的是HTML格式
            helper.setText(content, true);

            // 发送方账号昵称
//          nickname = javax.mail.internet.MimeUtility.encodeText(nickname);
            System.out.println(nickname);
            // 组装发送方账号信息
            helper.setFrom(new InternetAddress(nickname + sendFrom));

            // 抄送人员address
            if(ccAddr != null)
            {
                helper.setCc(ccAddr);
            }

            // 增加附件
            if(attachments != null && attachments.size()>0)
            {
                for (File file : attachments)
                {
                    helper.addAttachment(file.getName(), file);
                }
            }

            // File file = new File("d:/abc.txt");
            // helper.addAttachment("abc.txt", file);
            System.out.println("fasong之前");
            // 发送
            sender.send(mail);

            loger.info("邮件发送成功");
            System.out.println("fasongchenggong");
        } catch (MessagingException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

  • 写回答

1条回答 默认 最新

  • qq_31951345 2015-10-12 07:30
    关注

    这个和服务器有关系么?

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog