• 发送邮件


    package org.shfft.fq.mail;

    import java.io.UnsupportedEncodingException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Properties;

    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    import javax.mail.internet.MimeUtility;


    public class EmailManager {

    private Properties props; //系统属性
    private Session session; //邮件会话对象
    private MimeMessage mimeMsg; //MIME邮件对象
    private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象

    /**
    * Constructor
    * @param smtp 邮件发送服务器
    */
    public EmailManager(){
    props = System.getProperties();
    props.put("mail.smtp.auth","false");
    session = Session.getDefaultInstance(props, null);
    session.setDebug(true);
    mimeMsg = new MimeMessage(session);
    mp = new MimeMultipart();
    }

    /**
    * Constructor
    * @param smtp 邮件发送服务器
    */
    public EmailManager(String smtp, String username, String password){
    props = System.getProperties();
    props.put("mail.smtp.auth","true");
    props.put("mail.smtp.host", smtp);
    props.put("username", username);
    props.put("password", password);
    //
    session = Session.getDefaultInstance(props, null);
    session.setDebug(true);
    mimeMsg = new MimeMessage(session);
    mp = new MimeMultipart();
    }

    /**
    * 发送邮件
    */
    public boolean sendMail(String from, String[] to, String[] copyto, String subject, String content, String filename) {
    try {
    //设置发信人
    mimeMsg.setFrom(new InternetAddress(from));
    //设置接收人
    for (int i = 0; i < to.length; i++) {
    mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to[i]));
    }
    //设置抄送人
    for (int i = 0; i < copyto.length; i++) {
    mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyto[i]));
    }
    //设置主题
    mimeMsg.setSubject(subject);
    //设置正文
    BodyPart bp = new MimeBodyPart();
    bp.setContent(content, "text/html;charset=utf-8");
    mp.addBodyPart(bp);
    //设置附件
    if(!filename.equals("")||!filename.equals(null)){
    System.out.println("没有附件");
    }else{
    bp = new MimeBodyPart();
    FileDataSource fileds = new FileDataSource(filename);
    bp.setDataHandler(new DataHandler(fileds));
    bp.setFileName(MimeUtility.encodeText(fileds.getName(),"UTF-8","B"));
    mp.addBodyPart(bp);
    }
    mimeMsg.setContent(mp);
    mimeMsg.saveChanges();
    //发送邮件
    if(props.get("mail.smtp.auth").equals("true")){
    Transport transport = session.getTransport("smtp");
    transport.connect((String)props.get("mail.smtp.host"), (String)props.get("username"), (String)props.get("password"));
    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
    transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.CC));
    transport.close();
    }else{
    Transport.send(mimeMsg);
    }
    System.out.println("邮件发送成功");
    } catch (MessagingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return true;
    }

    public static void main(String[] args){
    String smtp = "smtp.163.com";
    String username="xxxxxx@163.com";
    String password="xxxxxxx";
    String from = "xxxxxxxxx@163.com";
    String[] to = {"xxxxxxxxxx@qq.com"};
    String[] copyto = {"xxxxxxxx@qq.com"};
    String subject = "报告";

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    String date = sdf.format(new Date());
    String content = date + "测试报告";

    String filename = "H:\1.png";
    //String filename = "";
    EmailManager email = new EmailManager(smtp, username, password);
    email.sendMail(from, to, copyto, subject, content, filename);
    }

    }

  • 相关阅读:
    HDOJ2066 一个人的旅行 floyd
    手动添加数据源时DataGridViewComboBoxCell值出问题解决方法
    可伸缩的Form窗体!
    SharpMap项目Web控件学习!
    MVC和MVP的初步理解
    ArcEngine编辑功能(五)
    胡言乱语:实体具有继承关系的空间数据库设计方法?
    WinForm单例窗体的实现
    4. 模板模式和建造者模式
    Oracle笔记(0):在Win2008系统上安装Oracle11g实践
  • 原文地址:https://www.cnblogs.com/fqfanqi/p/6115840.html
Copyright © 2020-2023  润新知