頁:
[1]
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> 先去看看 javamail 的 package 吧 那裡面有相當詳細的解釋例如要使用 POP SMTP 還是那種 protocal 都有詳細的範例 沒錯看一下Java mail api即可做到 如果使用Javamail,那可以用在eclipse上嗎? 大部份內容轉載自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]