<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    sunfruit[請訪問http://www.fruitres.cn]

    --我相信JAVA能走得更遠 QQ:316228067

    [原創]JAVAMAIL發送郵件正文是html格式并且顯示圖片還帶有附件的郵件

    ??? --sunfruit
    ???沒有什么說的,源代碼如下
    public void sendMail(int id) {
    ??????? //數據初始化
    ??????? Transport transport; //發郵件時使用
    ??????? String part = GetResource.getXMLValue("mail_port"); //端口
    ??????? String mailhost = GetResource.getXMLValue("mail_server"); //服務器
    ??????? String user = GetResource.getXMLValue("mail_user"); //用戶名
    ??????? String password = GetResource.getXMLValue("mail_password"); //密碼
    ??????? String from = GetResource.getXMLValue("mail_from"); //發件mail
    ??????? String strname = GetResource.getXMLValue("mail_strname"); //在地址欄上顯示的名字

    ??????? String to = GetResource.getXMLValue("mail_to"); //收件人
    ??????? String cc = ""; //抄送人
    ??????? String bcc = ""; //密送人
    ??????? String title = GetResource.getXMLValue("mail_title"); //標題
    ??????? byte[] bytes = null;
    ??????? try {
    ??????????? bytes = FileIO.readFile(GetResource.getXMLValue("mail_contentpath")); //正文
    ??????? } catch (IOException ex) {
    ??????????? log.error("",ex);
    ??????? }
    ??????? String fromat = GetResource.getXMLValue("mail_fromat");

    ??????? //獲得下載需要的key
    ??????? byte[] bkeydes=null;
    ??????? try {
    ??????????? bkeydes=FileIO.readFile(GetResource.getXMLValue("附件地址"));
    ??????? } catch (IOException ex) {
    ??????????? log.error("",ex);
    ??????? }

    ??????? try {
    ??????????? Properties props = System.getProperties(); //獲得系統屬性
    ??????????? props.put("mail.smtp.host", mailhost); //設置SMTP主機
    ??????????? props.put("mail.smtp.auth", "true"); //設置身份驗證為真,若須身份驗證則必須設為真

    ??????????? //獲得郵件會話對象
    ??????????? Session session = null;

    ??????????? //需要驗證
    ??????????? session = Session.getDefaultInstance(props,
    ???????????????????????????????????????????????? new SmtpAuthenticator(user,
    ??????????????????? password));

    ??????????? //創建MIME郵件對象
    ??????????? MimeMessage mimeMsg = new MimeMessage(session);
    ??????????? //設置發信人
    ??????????? if (strname != null && !strname.equals("")) {
    ??????????????? mimeMsg.setFrom(new InternetAddress(from, strname));
    ??????????? } else {
    ??????????????? mimeMsg.setFrom(new InternetAddress(from));
    ??????????? }
    ??????????? //設置收信人
    ??????????? if (!to.equals("")) {
    ??????????????? mimeMsg.setRecipients(Message.RecipientType.TO,
    ????????????????????????????????????? InternetAddress.parse(to));
    ??????????? }
    ??????????? //設置抄送人
    ??????????? if (!cc.equals("")) {
    ??????????????? mimeMsg.setRecipients(Message.RecipientType.CC,
    ????????????????????????????????????? InternetAddress.parse(cc));
    ??????????? }
    ??????????? //設置暗送人
    ??????????? if (!bcc.equals("")) {
    ??????????????? mimeMsg.setRecipients(Message.RecipientType.BCC,
    ????????????????????????????????????? InternetAddress.parse(bcc));
    ??????????? }
    ??????????? //設置郵件主題
    ??????????? sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
    //??????????? mimeMsg.setSubject("=?GB2312?B?" + enc.encode(title.getBytes()) +
    //?????????????????????????????? "?=");
    ??????????? mimeMsg.setSubject(title, "GBK");
    ??????????? //設置郵件內容
    ??????????? //mimeMsg.setText(content, "gb2312");
    ??????????? //發送日期
    ??????????? mimeMsg.setSentDate(new Date());
    ??????????? /*******************附件 begin××××××××××××××××××××××××*/
    ??????????? BodyPart mbp = null; //正文
    ??????????? //MimeBodyPart mbp1 = null; //附件

    ??????????? mbp = new MimeBodyPart();
    ??????????? //設置郵件正文格式(html/text)
    ??????????? if (fromat.equals("0") || fromat.equals("")) {
    ??????????????? //普通格式
    ??????????????? mbp.setText(new String(bytes,"GBK"));
    ??????????? } else {
    ??????????????? //網頁格式
    ??????????????? mbp.setDataHandler(new DataHandler(new String(bytes,"GBK"),
    ??????????????????????? "text/html;charset=gb2312"));
    ??????????? }
    ??????????? //!!!!注意必須為new MimeMultipart("related"); 這樣的實例化才能發送html正文顯示圖片的郵件 "related"
    ??????????? //new MimeMultipart(); 這樣實例化則不能發送html正文顯示圖片的郵件 只可以發送其他的郵件
    ??????????? Multipart mp = new MimeMultipart("related");
    ??????????? if (mbp != null)
    ??????????????? mp.addBodyPart(mbp); //正文

    ??????????? //附件key.des
    ??????????? BodyPart messageBodyPart = new MimeBodyPart();
    ??????????? ByteArrayDataSource fileds = new ByteArrayDataSource(bkeydes,"application/octet-stream");
    ??????????? messageBodyPart.setDataHandler(new DataHandler(fileds));
    ??????????? //解決附件中文問題
    ??????????? //mbp1.setFileName(fileds.getName(),"gb2312");
    ??????????? messageBodyPart.setFileName(MimeUtility.encodeWord("key.des", "GB2312", null));
    ??????????? mp.addBodyPart(messageBodyPart);

    ??????????? //附件 圖標
    ??????????? messageBodyPart = new MimeBodyPart();
    ??????????? bytes=FileIO.readFile(GetResource.getXMLValue("img_logo"));
    ??????????? fileds = new ByteArrayDataSource(bytes,"application/octet-stream");
    ??????????? messageBodyPart.setDataHandler(new DataHandler(fileds));
    ??????????? //解決附件中文問題
    //??????????? messageBodyPart.setFileName("fruitrsource_touming.jpg");
    //??????????? messageBodyPart.setHeader("Content-ID", "fruitrsource_touming");
    ??????????? messageBodyPart.setFileName("1.jpg");
    ??????????? //!!!!注意這里是"<IMG1>" 帶有尖括號 而在正文的html里面則是src="cid:IMG1"
    ??????????? messageBodyPart.setHeader("Content-ID", "<IMG1>");
    ??????????? mp.addBodyPart(messageBodyPart);

    ??????????? // 添加 Multipart到Message中
    ??????????? mimeMsg.setContent(mp);
    ??????????? mimeMsg.saveChanges();
    ??????????? transport = session.getTransport("smtp");
    ??????????? transport.connect(mailhost, Integer.parseInt(part), user, password);
    ??????????? //發送郵件
    ??????????? //transport.send(mimeMsg, mimeMsg.getAllRecipients());
    ??????????? //transport.send(mimeMsg);
    ??????????? transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients());
    ??????????? //System.out.println("mail send!");
    ??????????? transport.close();

    ??????? }

    ??????? catch (Exception e) {
    ??????????? e.printStackTrace();

    ??????? }
    ??? }

    class SmtpAuthenticator extends Authenticator {
    ??????? //SMTP身份驗證
    ??????? public SmtpAuthenticator(String username, String password) {
    ??????????? this.username = username;
    ??????????? this.password = password;
    ??????? }

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

    ??????? String username = null;
    ??????? String password = null;
    ??? }

    posted on 2006-10-24 23:04 sunfruit 閱讀(10900) 評論(5)  編輯  收藏 所屬分類: JAVA SE & EE

    評論

    # re: [原創]JAVAMAIL發送郵件正文是html格式并且顯示圖片還帶有附件的郵件 2008-12-25 16:32 nida

    老大FILEIO類也不貼1下啊???  回復  更多評論   

    # re: [原創]JAVAMAIL發送郵件正文是html格式并且顯示圖片還帶有附件的郵件 2009-10-16 09:38 zk

    FILEIO類,發一份 給我好嗎 zhang44128@163.com
    謝謝了  回復  更多評論   

    # re: [原創]JAVAMAIL發送郵件正文是html格式并且顯示圖片還帶有附件的郵件 2009-11-11 09:40 劉陽

    請發一份FILEIO類給我,謝謝
    whqsly@yahoo.com.cn  回復  更多評論   

    # re: [原創]JAVAMAIL發送郵件正文是html格式并且顯示圖片還帶有附件的郵件 2010-12-06 11:08 dengyang

    FileIO類 發一份啊 謝謝啦 前輩 dyyweb@163.com  回復  更多評論   

    # re: [原創]JAVAMAIL發送郵件正文是html格式并且顯示圖片還帶有附件的郵件 2010-12-06 11:09 dengyang

    正在學習 急需 拜托 前輩啦 懇求!!! FileIO類 dyyweb@163.com  回復  更多評論   

    主站蜘蛛池模板: 亚洲人成在线精品| 久久精品人成免费| 永久中文字幕免费视频网站| 亚洲视频无码高清在线| 好爽又高潮了毛片免费下载| 亚洲色欲色欲www在线播放| 天堂在线免费观看中文版| 韩国亚洲伊人久久综合影院| 免费一区二区三区四区五区| 四虎精品免费永久免费视频| 国产亚洲av人片在线观看| 男女一边摸一边做爽的免费视频| 黄色网址免费观看| 亚洲av无码片区一区二区三区| 91免费精品国自产拍在线不卡| 亚洲女女女同性video| 又大又粗又爽a级毛片免费看| 一级做a爱过程免费视| 亚洲av一综合av一区| 免费国产污网站在线观看不要卡 | 色se01短视频永久免费| 亚洲乱码一二三四区麻豆| 青青青青青青久久久免费观看| 免费看内射乌克兰女| 亚洲AV无码久久| 国产精品无码免费播放| 在线电影你懂的亚洲| 中文字幕无码日韩专区免费| 久久99亚洲网美利坚合众国 | 曰韩无码AV片免费播放不卡| 亚洲av无码潮喷在线观看| 日韩版码免费福利视频| 美女一级毛片免费观看| 亚洲一区二区三区首页| 性感美女视频免费网站午夜| 亚洲天堂免费在线视频| 亚洲国产成人九九综合| 国产精品亚洲mnbav网站 | 亚洲人成网站色在线入口| 久章草在线精品视频免费观看| 亚洲av无码兔费综合|