查看完整版本: JAVA作業-信箱
頁: [1]

mmcl 發表於 2009-11-11 07:37 PM

JAVA作業-信箱

本帖最後由 mmcl 於 2009-11-18 08:48 PM 編輯

題目如下:

    1.使用者選擇結束才能結束。
    2.登入,登出
    3.功能列表:檢查信息、寄信。
        a)寄信。
           - 輸入要寄新給什麼帳號   
           - 檢查剛輸入的帳號是否在系統裡面存在
               >>有的話才能繼續往下寫信的內容
               >>沒有得印出錯誤訊息並且重輸入起他帳號
           - 寫信的內容
           - 寄信出去
        b)檢查信息
           - 顯示所有新的信息的內容及它們從哪帳號寄來的。

             使用者選郵件系統裡面的登出不代表程式結束的條件。

我不知道該如何開始,煩請大大們解題
謝謝!!...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

chargeh 發表於 2009-11-12 07:52 PM

先去看看 javamail 的 package 吧 那裡面有相當詳細的解釋例如要使用 POP SMTP 還是那種 protocal 都有詳細的範例

magic99 發表於 2009-11-13 09:54 PM

沒錯看一下Java mail api即可做到

mmcl 發表於 2009-11-16 01:43 PM

如果使用Javamail,那可以用在eclipse上嗎?

cscxxx553 發表於 2009-11-16 03:10 PM

大部份內容轉載自zhaipuhong
     請自行測試一下或參考http://www.javaeye.com/topic/213005
   在開始介紹一下本示例的運行環境:(記得自行加入一些包)

   ·Window 2000 Server sp4
   ·JDK 6u10b
   ·JMail API v1.4.2
   ·JAF API v1.1 (JavaBean Activation Framework) 這個是JMail API依賴的支持庫
   ·Eclipse 3.4 for J2EE Developers

               
String host = ...; // 指定的smtp服务器
                String from = ...; // 邮件发送人的邮件地址
                String to = ...; // 邮件接收人的邮件地址

                // 创建Properties 对象
                Properties props = System.getProperties();

                // 添加smtp服务器属性
                props.put("mail.smtp.host", host);

                // 创建邮件会话
                Session session = Session.getDefaultInstance(props, null);

                try {
                        // 定义邮件信息
                        MimeMessage message = new MimeMessage(session);
                        message.setFrom(new InternetAddress(from));
                        message.addRecipient(Message.RecipientType.TO, new InternetAddress(
                                        to));
                        message.setSubject("HelloWorld JavaMail");
                        message.setText("Welcome to JavaMail World!");

                        // 发送消息
                        Transport.send(message);

                } catch (MessagingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }


package com.zhaipuhong.j2ee.jmail;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class HelloJMail {
       
       public static void sendMail() {
        String host = "smtp.163.com"; // 指定的smtp服务器
        String from = ""; // 邮件发送人的邮件地址
        String to = ""; // 邮件接收人的邮件地址
        final String username = "";  //发件人的邮件帐户
        final String password = "";   //发件人的邮件密码

        // 创建Properties 对象
        Properties props = System.getProperties();

        // 添加smtp服务器属性
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.auth", "true");   //163的stmp不是免费的也不公用的,需要验证

        // 创建邮件会话
        Session session = Session.getDefaultInstance(props, new Authenticator(){  //验账账户
                @Override
                public PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                }
                       
        });

        try {
                // 定义邮件信息
             MimeMessage message = new MimeMessage(session);
                       message.setFrom(new InternetAddress(from));
               message.addRecipient(Message.RecipientType.TO, new InternetAddress(
                                        to));
               message.setSubject("HelloWorld JavaMail");
                       message.setText("Welcome to JavaMail World!");

               // 发送消息
             //session.getTransport("smtp").send(message);  //也可以这样创建Transport对象
             Transport.send(message);

        } catch (MessagingException e) {
                e.printStackTrace();
        }
      }

      public static void main(String[] args) {
        HelloJMail.sendMail();
      }

}


      
……
      public static void sendMail() {
             String host = "smtp.163.com"; // 指定的smtp服务器
         String from = ""; // 邮件发送人的邮件地址
         String to = ""; // 邮件接收人的邮件地址
         final String username = "";  //发件人的邮件帐户
         final String password = "";   //发件人的邮件密码
    ……

FAQ:
     1. 如果你遇到“……553 authentication is required……”
      請檢查你的如下設置是否正確:
……

props.put("mail.smtp.auth", "true");

……
Session session = Session.getDefaultInstance(props, new Authenticator(){//你也可以单独创建Authenticator对象
                        @Override
                        public PasswordAuthentication getPasswordAuthentication() {
                                return new PasswordAuthentication(username, password);
                        }
                       
});

……

2. 如果你遇到“……java.lang.NoClassDefFoundError……com/sun/mail/util/SharedByteArrayInputS 、   com/sun/mail/util/MailDateFormat……  ” 之類的錯誤
      可能你的項目中引用了j2ee.jar包,里面包含有jmailAPI,與你添加到classpath中的jmail.jar版本不一樣或者內容有差別等造成,你需要在classpath中把你剛添加的jmail.jar和activation.jar放在j2ee.jar的前面,在IDE中,就在類庫中把這兩個包“moveup”到j2ee.jar包的上面。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>
頁: [1]