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

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

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

    posts - 0,  comments - 17,  trackbacks - 0
    package com.royal.mail;

    import java.util.Properties;

    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.Address;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.Multipart;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;

    public class Mail

    {


        private MimeMessage mimeMsg; // MIME郵件對象
        private Session session; // 郵件會話對象
        private Properties props; // 系統屬性
        //private boolean needAuth = false; // smtp是否需要認證
        private String username = ""; // smtp認證用戶名和密碼
        private String password = "";
        private Multipart mp; // Multipart對象,郵件內容,標題,附件等內容均添加到其中后再生成//MimeMessage對象

        public Mail(String smtp)
        {
            setSmtpHost(smtp);
            createMimeMessage();
        }
        public void setSmtpHost(String hostName)
        {
            System.out.println("設置系統屬性:mail.smtp.host = " + hostName);
            if (props == null)
                props = System.getProperties(); // 獲得系統屬性對象
            props.put("mail.smtp.host", hostName); // 設置SMTP主機
        }
        public boolean createMimeMessage()
        {
            try {
                System.out.println("準備獲取郵件會話對象!");
                session = Session.getDefaultInstance(props, null); // 獲得郵件會話對象
            }
            catch (Exception e)
            {
                System.err.println("獲取郵件會話對象時發生錯誤!" + e);
                return false;
            }
            System.out.println("準備創建MIME郵件對象!");
            try {
                mimeMsg = new MimeMessage(session); // 創建MIME郵件對象
                mp = new MimeMultipart(); // mp 一個multipart對象
                return true;
            }
            catch (Exception e)
            {
                System.err.println("創建MIME郵件對象失敗!" + e);
                return false;
            }
        }


        public void setNeedAuth(boolean need) {
            System.out.println("設置smtp身份認證:mail.smtp.auth = " + need);
            if (props == null)
                props = System.getProperties();
            if (need) {
                props.put("mail.smtp.auth", "true");
            } else {
                props.put("mail.smtp.auth", "false");

            }

        }
        public void setNamePass(String name, String pass)
        {
            System.out.println("程序得到用戶名與密碼");
            username = name;
            password = pass;
        }

        public boolean setSubject(String mailSubject) {
            System.out.println("設置郵件主題!");
            try {
                mimeMsg.setSubject(mailSubject);
                return true;
            }
            catch (Exception e) {
                System.err.println("設置郵件主題發生錯誤!");
                return false;
            }
        }

        public boolean setBody(String mailBody)
        {
            try
            {
                System.out.println("設置郵件體格式");
                BodyPart bp = new MimeBodyPart();
                bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>"+mailBody,"text/html;charset=UTF-8");
                mp.addBodyPart(bp);
                return true;
                
                
                
            }
            catch (Exception e)
            {
                System.err.println("設置郵件正文時發生錯誤!" + e);
                return false;
            }
        }

        public boolean addFileAffix(String filename) {
            System.out.println("增加郵件附件:" + filename);
            try {
                BodyPart bp = new MimeBodyPart();
                FileDataSource fileds = new FileDataSource(filename);
                bp.setDataHandler(new DataHandler(fileds));
                bp.setFileName(fileds.getName());
                mp.addBodyPart(bp);
                return true;
            }
            catch (Exception e) {
                System.err.println("增加郵件附件:" + filename + "發生錯誤!" + e);
                return false;
            }
        }

        public boolean setFrom(String from) {
            System.out.println("設置發信人!");
            try {
                mimeMsg.setFrom(new InternetAddress(from)); // 設置發信人
                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        public boolean setTo(String to)
        {
            System.out.println("設置收信人");
            if (to == null)
                return false;
            try
            {
                mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }


        public boolean setCopyTo(String copyto)
        {
            System.out.println("發送附件到");
            if (copyto == null)
                return false;
            try {
                mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));
                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }

        public boolean sendout()
        {
            try
            {
                mimeMsg.setContent(mp);
                mimeMsg.saveChanges();
                System.out.println("正在發送郵件....");
                Session mailSession = Session.getInstance(props, null);
                Transport transport = mailSession.getTransport("smtp"); // ???
                transport.connect((String) props.get("mail.smtp.host"), username,password);
                transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
                // transport.send(mimeMsg);
                System.out.println("發送郵件成功!");
                transport.close();
                return true;
            }
            catch (Exception e)
            {
                System.err.println("郵件發送失敗!" + e);
                return false;
            }
        }

        /*public static void main(String[] args)
        {
            String mailbody = "<html><head></head><body><hr><font color=""red"">hello. This is a testing.</red></body></html>";
            Mail themail = new Mail("smtp.163.com");
            themail.setNeedAuth(true);
            if (themail.setSubject("dkjjf") == false)
                return;
            if (themail.setBody(mailbody) == false)
                return;
            if (themail.setTo("lyh@jobbaidu.com") == false)
                return;
            if (themail.setFrom("iversonpa@163.com") == false)
                return;
            //if (themail.addFileAffix("d://aaa.rar") == false)
                //return; // 附件在本地機子上的絕對路徑
            themail.setNamePass("iversonpa", "******"); // 用戶名與密碼
            if (themail.sendout() == false)
                return;
        }*/

    }

    posted on 2007-12-18 11:45 xyz 閱讀(208) 評論(0)  編輯  收藏 所屬分類: 他山之石

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿

    隨筆檔案(1)

    文章分類(44)

    文章檔案(46)

    收藏夾(1)

    Adobe

    AOP

    API

    appServer

    BI

    c

    • c-free
    • codeblocks
    • codelite
    • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發環境. 支持包括 Windows、Linux 和 Mac 系統下運行
    • codelite官網
    • dev-c++
    • Dev-C++是一個C&C++開發工具,它是一款自由軟件,遵守GPL協議。
    • GCC
    • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

    Cache

    CMS

    DB

    eclipse

    FreeMarker

    hibernate

    html5

    ibatis

    java

    jquery

    js

    json

    Linux

    Log

    mail server

    mobile

    mysql

    oauth

    openID

    other

    PHP

    portal

    report

    Scheduler

    schema

    Security

    SOA

    spring

    struts

    UI原型設計

    w3c

    Wap

    webservice

    xml

    供應鏈管理

    博客鏈接

    好網站

    工作流

    開源網

    招聘

    插件下載

    操作系統

    構建可伸縮的系統

    構建工具

    測試

    • IETest
    • IE官網
    • OpenSTA
    • Siege
    • Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力

    游戲

    源碼托管

    經營

    資源

    金融/財務

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 久久亚洲精品成人无码| 久久久影院亚洲精品| 国产美女无遮挡免费网站| 全免费毛片在线播放| 亚洲免费网站在线观看| 8x成人永久免费视频| 在线观看www日本免费网站| 亚洲高清视频免费| 国产成人福利免费视频| 国产一卡2卡3卡4卡2021免费观看 国产一卡2卡3卡4卡无卡免费视频 | 亚洲视频在线免费| 中文字幕在线免费观看视频| 黄视频在线观看免费| 成人片黄网站色大片免费观看APP| 三级黄色片免费看| 久99久精品免费视频热77| 1000部拍拍拍18免费网站| 91精品国产免费久久久久久青草| 免费精品人在线二线三线区别| 夭天干天天做天天免费看| 国产最新凸凹视频免费| 久久精品国产亚洲7777| 国产av天堂亚洲国产av天堂 | 国产大片免费观看中文字幕| 午夜亚洲福利在线老司机| 国产亚洲AV手机在线观看| 亚洲一区二区成人| 亚洲精品天堂在线观看| 女人裸身j部免费视频无遮挡| 成人无码区免费A∨直播| 国产精品免费观看| 国产男女猛烈无遮挡免费网站| 亚洲人AV永久一区二区三区久久| 亚洲αv久久久噜噜噜噜噜| 亚洲成a人不卡在线观看| 日韩欧美亚洲国产精品字幕久久久| 四虎永久在线精品免费一区二区| 精品国产免费一区二区三区香蕉 | 午夜精品射精入后重之免费观看| 无遮免费网站在线入口| 国产三级免费观看|