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

    主站蜘蛛池模板: 久久精品国产免费| 色婷婷综合缴情综免费观看 | 亚洲精华液一二三产区| 99re热精品视频国产免费| 国产成人精品日本亚洲网站| gogo免费在线观看| 亚洲人成色7777在线观看不卡 | 亚洲暴爽av人人爽日日碰| 成人免费视频试看120秒| 亚洲中文字幕AV每天更新| 天天天欲色欲色WWW免费| 亚洲区日韩精品中文字幕| 国产精品免费综合一区视频| 国产亚洲精品AAAA片APP| 国产乱子伦片免费观看中字| 自拍偷自拍亚洲精品播放| 亚洲福利在线播放| 韩国免费a级作爱片无码| 亚洲成A人片在线观看无码不卡 | 产传媒61国产免费| 国产AV无码专区亚洲AV漫画 | 亚洲一区二区三区国产精品无码 | 3d成人免费动漫在线观看| 亚洲人成网站在线观看播放动漫 | 亚洲日韩看片无码电影| 四虎影院永久免费观看| 亚洲阿v天堂在线2017免费| 国产亚洲欧洲精品| 两性刺激生活片免费视频| 免费播放美女一级毛片| 国产偷国产偷亚洲高清日韩| 久久中文字幕免费视频| 33333在线亚洲| 中文字幕无码精品亚洲资源网| 最新亚洲成av人免费看| 亚洲剧情在线观看| 亚洲国产精品激情在线观看| 麻豆精品不卡国产免费看| 亚洲香蕉久久一区二区| 亚洲av无码成人精品区在线播放| 大地资源中文在线观看免费版|