Java实现邮件的自动发送

  1. public static void sendTxtMail()  
  2.     {  
  3.        Properties props = new Properties();  
  4.        props.put("mail.smtp.host""smtp.163.com"); //smtp服务器地址  
  5.   
  6.        props.put("mail.smtp.auth"true);  //是否需要认证  
  7.          
  8.        /**实例化一个验证里,继承abstract Authenticator 
  9.         * 实现     
  10.         *   protected PasswordAuthentication getPasswordAuthentication(){ 
  11.         *       return new PasswordAuthentication(userName,password); 
  12.         *   } 
  13.         */   
  14.        MyAuthenticator myauth = new MyAuthenticator("账号","密码");  
  15.        //获得一个带有authenticator的session实例  
  16.        Session session = Session.getInstance(props,myauth);  
  17.        session.setDebug(true);//打开debug模式,会打印发送细节到console  
  18.        Message message = new MimeMessage(session); //实例化一个MimeMessage集成自abstract Message 。参数为session  
  19.        try  
  20.        {  
  21.        message.setFrom(new InternetAddress("83378122@163.com")); //设置发出方,使用setXXX设置单用户,使用addXXX添加InternetAddress[]  
  22.   
  23.        message.setText("只是一个简简单单的文本内容哟!"); //设置文本内容 单一文本使用setText,Multipart复杂对象使用setContent  
  24.   
  25.        message.setSubject("只是简简单单的文本标题哟!"); //设置标题   
  26.   
  27.        message.setRecipient(Message.RecipientType.TO, new InternetAddress("dxt02880466@qq.com")); //设置接收方  
  28.   
  29.       Transport.send(message); //使用Transport静态方法发送邮件  
  30.     
  31.        }catch(AddressException e)  
  32.        {  
  33.            //此处处理AddressException异常  [The exception thrown when a wrongly formatted address is encountered.]   
  34.   
  35.        }catch(MessagingException e)  
  36.        {  
  37.            //此处处理MessagingException异常 [The base class for all exceptions thrown by the Messaging classes ]  
  38.        }  
  39.          

  1.     }  

  1. //发送带有附件的邮件,将邮件的每个部分初始化一个bodypart。  
  2.     //邮件是由多个部分组成,每个部分称为一个邮件体部分,是一个 BodyPart 类对象,  
  3.     //对于 MIME 类型 邮件来讲就是 MimeBodyPart 类对象.这些邮件体包含在成为 Multipart 的容器中  
  4.     public static void sendMailWithAttachment(){  
  5.           
  6.         Properties props = new Properties();  
  7.         Session session = Session .getDefaultInstance(props);  
  8.         Message message = new MimeMessage(session);  
  9.         try  
  10.         {  
  11.         message.setSubject("这个是带有附件的标题");  
  12.         message.setFrom(new InternetAddress("83378122@163.com"));  
  13.         message.setRecipient(Message.RecipientType.TO, new InternetAddress("dxt02880466@qq.com"));  
  14.         Multipart multipart = new MimeMultipart();  
  15.         //实例化一个bodypart用于封装内容  
  16.         BodyPart bodyPart = new MimeBodyPart();  
  17.         bodyPart.setContent("<font color='red'>这个是带有附件的HTML内容</font>","text/html;charset=utf8");  
  18.         //添加bodypart到multipart  
  19.         multipart.addBodyPart(bodyPart);  
  20.         //每一个部分实例化一个bodypart,故每个附件也需要实例化一个bodypart  
  21.         bodyPart = new MimeBodyPart();  
  22.         //实例化DataSource(来自jaf),参数为文件的地址  
  23.         DataSource dataSource = new FileDataSource(file.getAbsolutePath());  
  24.         //使用datasource实例化datahandler  
  25.         DataHandler dataHandler = new DataHandler(dataSource);  
  26.         bodyPart.setDataHandler(dataHandler);  
  27.         //设置附件标题,使用MimeUtility进行名字转码,否则接收到的是乱码  
  28.         bodyPart.setFileName(javax.mail.internet.MimeUtility.encodeText(file.getName()));  
  29.         multipart.addBodyPart(bodyPart);  
  30.         message.setContent(multipart);  
  31.         Transport transport = session.getTransport("smtp");  
  32.         transport.connect("smtp.163.com","账号" , "密码");  
  33.         transport.sendMessage(message, message.getAllRecipients());  
  34.         transport.close();  
  35.         }catch(MessagingException  e)  
  36.         {}catch(UnsupportedEncodingException e){}  
  37.           
  38.     }  


1. 什么是javamail   JavaMail API是读取、撰写、发送电子信息的可选包。 
2. javamail开发需要依赖的jar包   
   mail.jar(javamail API 目前是1.4.3)-与收发有关的类都在其中 
   activation.jar(javabeans activation framework包 目前是1.0.2)--可以提供对Mime类型数据的支持。比如收发附件。 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
定时自动发送邮件服务使用说明 该软件运行环境需要.Net 3.5支持,Win7系统上可以直接运行. 主要功能可以定时自动发送邮件,发送程序做成服务形式,用户无需登录, 只要电脑是开启状态,就会自动执行发送邮件. 包含的文件, 1.AutoSendMail.exe --设置程序 2.AutoSendMail_Log.txt --存放日志的文本文件. 可自动生成 3.AutoSendMail_Setting.xml --配置文件 4.AutoSendMailService.exe --服务程序 5.InstallUtil.exe --微软的安装服务必须程序 6.tasks.mdb --Access数据库文件,用于存放邮箱内容. 可更改文件 7.安装服务.bat 8.使用说明.txt 9.卸载服务.bat 安装步骤: 第一步:安装服务 运行“安装服务.bat”文件。(需要管理员权限) 第二步:修改配置文件 修改好配置文件AutoSendMail_Setting.xml。确保Access数据库连接正确,每个任务的发送时点,和邮件信息。 每次修改配置文件必需重新启动服务才生效。 第三步:启动服务 a.从服务管理控制台启动服务,运行services.msc命令打开控制台。 b.通过设置程序启动服务。(需要管理员权限) 如果删除服务,则运行“卸载服务.bat”。 接口定义: 每个任务需要在指定的Access数据库里设置一个视图或表,用于存放邮件信息, 字段格式: 第一字段:ID 自动编号 第二字段:收件人 文本类型 第三字段:抄送人 文本类型 第四字段:主题 文本类型 第五字段:内容 备注类型 第六字段:发送次数 数字类型 备注:程序通过ID查找记录,来更新发送次数的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值