java 郵件發送

java 處理郵件發送

1.使用java mail api

2.使用SMTP協議直接發送,只要按照SMTP的協議要求規範直接編程即可

這裏先說SMTP協議直接發送,原本想用java mail api 來寫,沒想到網上google一下就看到了有人直接用SMTP協議發送郵件,當然,前提是你需要對SMTP的協議清楚,好在已經有仁兄做了指導

參考原文:http://blog.csdn.net/Wasingmon/archive/2005/12/14/552448.aspx

 

這裏主要是對源代碼做更詳細的解釋

一下是原代碼片段,自己已經做了一些詳細的註釋

public static void main(String[] args) throws UnknownHostException,
            IOException {
        //消息體
        MailMessage message = new MailMessage();
        message.setFrom("[email protected]");// 發件人
        message.setTo("[email protected]");// 收件人
        String server = "smtp.163.com";// 郵件服務器
        message.setSubject("測試");// 郵件主題
        message.setContent("自己用軟件發送郵件哦");// 郵件內容
        message.setDatafrom("謝飛");// 發件人,在郵件的發件人欄目中顯示
        message.setDatato("小李");// 收件人,在郵件的收件人欄目中顯示
        message.setUser("xxxxxx");// 登陸郵箱的用戶名(填寫自己的用戶名)
        message.setPassword("xxxxxx");// 登陸郵箱的密碼(填寫自己的密碼)
        //構造並連接服務器
        SMTPClient smtp = new SMTPClient(server, 25);
        //發送郵件成功標示
        boolean flag;
        flag = smtp.sendMail(message, server);
        if (flag) {
            System.out.println("郵件發送成功!");
        } else {
            System.out.println("郵件發送失敗!");
        }

    }

 

 

說白了,其中沒有貼出的主要函數

public void helo(String server, BufferedReader in, BufferedWriter out)

 

private int sendServer(String str, BufferedReader in, BufferedWriter out)

 

public int getResult(BufferedReader in)

 

public void authLogin(MailMessage message, BufferedReader in,
            BufferedWriter out) throws IOException

 

public void mailfrom(String source, BufferedReader in, BufferedWriter out)

 

public void rcpt(String touchman, BufferedReader in, BufferedWriter out)

 

public void data(String from, String to, String subject, String content,
        BufferedReader in, BufferedWriter out) throws IOException

 

public void quit(BufferedReader in, BufferedWriter out) throws IOException

 

public boolean sendMail(MailMessage message, String server)

 

這些都是完成SMTP協議的必要步驟,原作者是嚴格按照步驟一步一步的發送郵件,當然這裏SMTP的規範,我們主要是利用socket通訊,完成這些步驟

smtp倒是一個比較簡單的做法,當然,需要對SMTP的協議,即發送步驟,以及返回代碼清楚

 

結果展示:

未命名

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章