邮件发送(基础知识最为要命)

package com.fww.mail;

import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

public class JavaMailSendUtil {

props = java.lang.System.getProperties(); // 获得系统属性对象
        String text, String[] filenames, String mimeType) {
    try {
        Properties props = new Properties();  

        String smtp = "smtp.163.com"; // 设置发送邮件所用到的smtp
        String servername = "**@163.com";  //邮箱账号名
        String serverpaswd = "**";  //邮箱密码

        javax.mail.Session mailSession = null; // 邮件会话对象
        javax.mail.internet.MimeMessage mimeMsg = null; // MIME 邮件对象  

        props = java.lang.System.getProperties(); // 获得系统属性对象
        props.put("mail.smtp.host", smtp); // 设置SMTP主机
        props.put("mail.smtp.auth", "true"); // 是否到服务器用户名和密码验证
        // 到服务器验证发送的用户名和密码是否正确
        SmtpAuthenticator myEmailAuther = new SmtpAuthenticator(servername,
                serverpaswd);
        // 设置邮件会话 注意这里将认证信息放进了Session的创建参数里
        mailSession = javax.mail.Session.getInstance(props,
                (Authenticator) myEmailAuther);
        // 设置传输协议
        javax.mail.Transport transport = mailSession.getTransport("smtp");
       // 设置from、to等信息
       mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
       if (null != from && !"".equals(from)) {
           InternetAddress sentFrom = new InternetAddress(from);
           mimeMsg.setFrom(sentFrom); // 设置发送人地址
       }  

       InternetAddress[] sendTo = new InternetAddress[to.length];
       for (int i = 0; i < to.length; i++) {
           System.out.println("发送到:" + to[i]);
           sendTo[i] = new InternetAddress(to[i]);
       }  

       mimeMsg.setRecipients(
               javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
       mimeMsg.setSubject(subject, "gb2312");  

       MimeBodyPart messageBodyPart1 = new MimeBodyPart();
       // messageBodyPart.setText(UnicodeToChinese(text));
       messageBodyPart1.setContent(text, mimeType);  

       // 附件传输格式
       Multipart multipart = new MimeMultipart();
       multipart.addBodyPart(messageBodyPart1);  

       for (int i = 0; i < filenames.length; i++) {
           MimeBodyPart messageBodyPart2 = new MimeBodyPart();  

           String filename = filenames[i].split(";")[0];
           String displayname = filenames[i].split(";")[1];
           // 得到数据源
           FileDataSource fds = new FileDataSource(filename);
           // BodyPart添加附件本身
           messageBodyPart2.setDataHandler(new DataHandler(fds));
           // BodyPart添加附件文件名
           messageBodyPart2.setFileName(MimeUtility
                   .encodeText(displayname));
           multipart.addBodyPart(messageBodyPart2);
       }
       mimeMsg.setContent(multipart);
       // 设置信件头的发送日期
       mimeMsg.setSentDate(new Date());
       mimeMsg.saveChanges();
       // 发送邮件
       transport.send(mimeMsg);
       transport.close();
       System.out.println("发送到成功!!!");
   } catch (Exception e) {
       e.printStackTrace();
   }

}

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

String title = "测试邮件";// 所发送邮件的标题
   String from = "**@163.com";// 从那里发送
   String sendTo[] = { "**@qq.com","**@sina.com" };// 发送到那里
   // 邮件的文本内容,可以包含html标记则显示为html页面
   String content = "test java send mail !!!!!!<br><a href=‘www.baidu.com‘>你好啊</a>";
 // 所包含的附件,及附件的重新命名
 String fileNames[] = { "d:\\test.jpg;test.jpg","d:\\test.zip;aaa.zip" };  

 JavaMailSendUtil test = new JavaMailSendUtil();
 try {
     // MailSender mailsender = new MailSender();
     test.sendmail(title, from, sendTo, content, fileNames,
             "text/html;charset=gb2312");
 } catch (Exception ex) {
     ex.printStackTrace();
 }

}

class SmtpAuthenticator extends Authenticator {

String username = null;
 String password = null;  

 public SmtpAuthenticator(String username, String password) {
     super();
     this.username = username;
     this.password = password;
 }  

 public PasswordAuthentication getPasswordAuthentication() {
     return new PasswordAuthentication(this.username, this.password);
   }

}
}

时间: 2024-11-10 21:00:28

邮件发送(基础知识最为要命)的相关文章

postfix之邮件服务基础知识

SMTP(Simple Mail Transfer Protocol)    smptd: TCP 25 服务端.    smtp: 客户端.随机端口,通常大于5000 SMTP状态码:        1xx 纯信息        2xx 正确        3xx 上一步操作尚未完成,待后续补充        4xx 暂时性错误        5xx 永久性错误 SMTP协议命令:        helo 以smtp协议向对方发送hello信息.        ehlo 以esmtp协议向对方

python学习笔记2:基础(邮件发送)

参考文档:http://www.runoob.com/python/python-email.html SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一种很方便的途径发送电子邮件.它对smtp协议进行了简单的封装. Python创建 SMTP 对象语法如下: import smtplib smtpObj = smtplib.SMTP( [host

邮件开发一些基础知识

一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu.163等等他们都有自己的邮件服务器. 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中. 电子邮箱(E-Mail地址)的获得需要在邮件服务器上进行申请,确切地说,电子邮箱其实就是用户在邮件服务器上申请的一个账户,用户在邮件服务器上申请了一

网络基础知识查询

第一章.基础网络概念 1.1 网络是个什么玩意儿 全世界的人种有很多,人类使用的语言种类也多的很.那如果你想要跟外国人沟通时,除了比手划脚之外,你要如何跟对方讲话? 大概只有两种方式啰,一种是强迫他学中文,一种则是我们学他的语言,这样才能沟通啊.在目前世界上的强势语言还是属于英语系国家, 所以啰,不管是啥人种,只要学好英文,那么大家都讲英文,彼此就能够沟通了.希望不久的未来,咱们的中文能够成为强势语言啊! 这个观念延伸到网络上面也是行的通的,全世界的操作系统多的很,不是只有 Windows/Li

[Java面试三]JavaWeb基础知识总结.

1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. • 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同. l 静态web资源开发技术 • Html l 常用动态web资源开发技术: • JSP/Servlet.ASP

[Network] 计算机网络基础知识总结

[Network] 计算机网络基础知识总结 阅读目录 1. 网络层次划分 2. OSI七层网络模型 3. IP地址 4. 子网掩码及网络划分 5. ARP/RARP协议 6. 路由选择协议 7. TCP/IP协议 8. UDP协议 9. DNS协议 10. NAT协议 11. DHCP协议 12. HTTP协议 13. 一个举例 计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合.因为不同用户的数据终端可能采取的字符集是不同的,两

网络基础知识解析

随笔 - 63  文章 - 1  评论 - 289 [Network] 计算机网络基础知识总结 阅读目录 1. 网络层次划分 2. OSI七层网络模型 3. IP地址 4. 子网掩码及网络划分 5. ARP/RARP协议 6. 路由选择协议 7. TCP/IP协议 8. UDP协议 9. DNS协议 10. NAT协议 11. DHCP协议 12. HTTP协议 13. 一个举例 计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合

黑客术语基础知识快速了解

1.肉鸡:所谓“肉鸡”是一种很形象的比方,比方那些能够随意被我们操控的电脑,对方可所以WINDOWS体系,也可所以UNIX/LINUX体系,可所以一般的个人电脑,也可所以大型的服务器,我们能够象操作自己的电脑那样来操作它们,而不被对方所发觉. 2.木马:就是那些表面上伪装成了正常的程序,可是当这些被程序运转时,就会获取体系的整个操控权限.有很多黑客就是 热中与运用木马程序来操控别人的电脑,比方灰鸽子,黑洞,PcShare等等. 3.网页木马:表面上伪装成一般的网页文件或是将罢了的代码直接插入到正

Keepalived基础知识

大纲: 一.什么是Keepalived? 二.VRRP协议简介. 三.Keepalived原理. 四.Keepalived配置文件详解. 五.Keepalived配置示例. 一.什么是Keepalived? 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是