邮件发送器

public class EmailSender {

    private static final String charset = "GBK";

    private static final String defaultMimetype = "text/plain";

 

    public static void main(String[] args) throws Exception {

    EmailSender.send(new String[]{"hsiangyu@gmail.com"}, "邮件测试xx", "<b>Hsiangyu的邮件测试</b>",null , "text/html");

    }

    /**

     * 发送邮件

     * @param receiver 收件人

     * @param subject 标题

     * @param mailContent 邮件内容

     * @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html

     */

    public static void send(String receiver, String subject, String mailContent, String mimetype) {

    send(new String[]{receiver}, subject, mailContent, mimetype);

    }

    /**

     * 发送邮件

     * @param receivers 收件人

     * @param subject 标题

     * @param mailContent 邮件内容

     * @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html

     */

    public static void send(String[] receivers, String subject, String mailContent, String mimetype) {

    send(receivers, subject, mailContent, null, mimetype);

    }

    /**

     * 发送邮件

     * @param receivers 收件人

     * @param subject 标题

     * @param mailContent 邮件内容

     * @param attachements 附件

     * @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html

     */

    public static void send(String[] receivers, String subject, String mailContent, File[] attachements, String mimetype) {

        Properties props = new Properties();

        props.put("mail.smtp.host", "smtp.126.com");//Smtp服务器地址

        props.put("mail.smtp.auth", "true");//需要校验

        Session session = Session.getDefaultInstance(props, new Authenticator() {

            protected PasswordAuthentication getPasswordAuthentication() {

                return new PasswordAuthentication("XXXXXXXX@126.com",XXXXXXXX");//登录用户名/密码

            }

        });

        session.setDebug(true);

        try {

            MimeMessage mimeMessage = new MimeMessage(session);

            mimeMessage.setFrom(new InternetAddress("XXXXXXXX@126.com"));//发件人邮件

 

            InternetAddress[] toAddress = new InternetAddress[receivers.length];

            for (int i=0; i<receivers.length; i++) {

                toAddress[i] = new InternetAddress(receivers[i]);

            }

            mimeMessage.setRecipients(Message.RecipientType.TO, toAddress);//收件人邮件

            mimeMessage.setSubject(subject, charset);

 

            Multipart multipart = new MimeMultipart();

            //正文

            MimeBodyPart body = new MimeBodyPart();

           // body.setText(message, charset);不支持html

            body.setContent(mailContent, (mimetype!=null && !"".equals(mimetype) ? mimetype : defaultMimetype)+ ";charset="+ charset);

            multipart.addBodyPart(body);//发件内容

            //附件

            if(attachements!=null){

           for (File attachement : attachements) {

               MimeBodyPart attache = new MimeBodyPart();

              //ByteArrayDataSource bads = new ByteArrayDataSource(byte[],"application/x-any");

               attache.setDataHandler(new DataHandler(new FileDataSource(attachement)));

               String fileName = getLastName(attachement.getName());

               attache.setFileName(MimeUtility.encodeText(fileName, charset, null));

               multipart.addBodyPart(attache);

           }

            }

            mimeMessage.setContent(multipart);

           // SimpleDateFormat formcat = new SimpleDateFormat("yyyy-MM-dd");            

            mimeMessage.setSentDate(new Date());//formcat.parse("2011-5-23")

            Transport.send(mimeMessage);            

        } catch (Exception e) {

        e.printStackTrace();

        }

    }

 

    private static String getLastName(String fileName) {

        int pos = fileName.lastIndexOf("\\");

        if (pos > -1) {

            fileName = fileName.substring(pos + 1);

        }

        pos = fileName.lastIndexOf("/");

        if (pos > -1) {

            fileName = fileName.substring(pos + 1);

        }

        return fileName;

    }

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值