<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  回復  更多評論   

    主站蜘蛛池模板: 亚洲av无码专区在线电影| 亚洲夂夂婷婷色拍WW47| 国产又黄又爽又大的免费视频 | 亚洲无人区一区二区三区| 免费人成视频在线播放| 亚洲天堂免费在线视频| 国产免费内射又粗又爽密桃视频| 亚洲日韩av无码| 免费看一区二区三区四区| 久久精品亚洲日本佐佐木明希| 日本黄色动图免费在线观看| 7777久久亚洲中文字幕蜜桃| 久久久久久精品免费看SSS| 亚洲av无码一区二区三区观看| 国产在线观看免费观看不卡| 亚洲s码欧洲m码吹潮| 亚洲国产天堂久久综合| 三年片免费高清版| 亚洲电影免费观看| 日本一道综合久久aⅴ免费| 一级黄色片免费观看| 亚洲成AV人片在| 可以免费看的卡一卡二| 国产精品亚洲二区在线| 亚洲乱码国产乱码精品精| 免费人妻无码不卡中文字幕系 | 久久久亚洲裙底偷窥综合| 香蕉97超级碰碰碰免费公| 美美女高清毛片视频黄的一免费 | 伊人久久大香线蕉免费视频| 亚洲人成电影在线天堂| 成年女人毛片免费播放人| 男女男精品网站免费观看| 亚洲Aⅴ无码专区在线观看q| 欧亚精品一区三区免费| 五月天婷婷免费视频| 亚洲高清无在码在线电影不卡| 国产黄色片在线免费观看| av永久免费网站在线观看| 亚洲欧美自偷自拍另类视| 亚洲精品国产精品乱码不99|