zoukankan      html  css  js  c++  java
  • 用java发送邮件(黄海已测试通过)

    /**
     * java发送带附件的邮件
     * 周枫
     * 2013.8.10
     */
    package com.dsideal.Util;
    import javax.mail.*;
    import javax.mail.internet.*;
    
    import java.util.*;
    import javax.activation.*;
    
    public class SendMail {
    
        private static String host = "smtp.qq.com"; // smtp服务器
        private static String user = "95834073@qq.com"; // 用户名
        private static String pwd = "******"; // 密码
    
        /**
         * <p>功能:</p>
         * @author 周枫
         * @date 2013-8-10
         * @param "发送的邮箱", "接收的邮箱", "这个是收件箱列表标题名称", "发送邮件显示标题", "邮件正文", "附件名称","附件地址+名称"
         * @return void
         */
        public static void send(String from,String to,String personalName,String subject,String mail_body,String affixName,String affix_url) {
    
            Properties props = new Properties();
    
            // 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
            props.put("mail.smtp.host", host);
            // 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
            props.put("mail.smtp.auth", "true");
    
            // 用刚刚设置好的props对象构建一个session
            Session session = Session.getDefaultInstance(props);
    
            // 用session为参数定义消息对象
            MimeMessage message = new MimeMessage(session);
            try {
                Address address = new InternetAddress(from,personalName);
                // 加载发件人地址
                message.setFrom(address);
                // 加载收件人地址
                message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
                // 加载标题
                message.setSubject(subject);
    
                // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
                Multipart multipart = new MimeMultipart();
    
                // 设置邮件的文本内容
                BodyPart contentPart = new MimeBodyPart();
                contentPart.setText(mail_body);
                multipart.addBodyPart(contentPart);
                // 添加附件
                BodyPart messageBodyPart = new MimeBodyPart();
                //解决中文乱码问题
                DataSource source = new FileDataSource(affix_url);
                // 添加附件的内容
                messageBodyPart.setDataHandler(new DataHandler(source));
                // 添加附件的标题
                // 这里很重要,不会变成乱码
                messageBodyPart.setFileName(MimeUtility.encodeText(affixName));  
                
                multipart.addBodyPart(messageBodyPart);
    
                // 将multipart对象放到message中
                message.setContent(multipart);
                // 保存邮件
                message.saveChanges();
                // 发送邮件
                Transport transport = session.getTransport("smtp");
                // 连接服务器的邮箱
                transport.connect(host, user, pwd);
                // 把邮件发送出去
                transport.sendMessage(message, message.getAllRecipients());
                transport.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            SendMail.send("95834073@qq.com", "95834073@qq.com", "列表名称", "html页面标题", "周枫java发送邮件", "附件.txt", "D:"+File.separator+"temp周枫.txt");
            System.out.println("邮件成功发送完成!");
        }
    }

    要用到的JAR包:http://files.cnblogs.com/littlehb/mail.rar    (解压后放到Lib里)

  • 相关阅读:
    linux find命令
    busybox的使用
    sql server的数据库个数、表个数及表的数据量统计
    SQL Server查看所有表大小,所占空间
    oracle数据库审计
    oracle --审计
    oracle 增量导出/导入
    MySQL下做Master/Slave同步,延迟太大怎么办?
    【MongoDB】2、安装MongoDB 2.6.1 on Unbuntu 14.04(学习流水账)
    mongodb shell之使用js(二)
  • 原文地址:https://www.cnblogs.com/littlehb/p/3219112.html
Copyright © 2011-2022 走看看