📄 mailwrapzeng.java~19~
字号:
package mailofjava;import javax.mail.*;import javax.mail.internet.*;import java.util.*;import java.io.*;/*@@本程序试图封装邮件类,这样用户使用更简单,指定收信人发信人主题内容就可以发送,非常方便!注意,邮件可以发送给多个人,抄送多个人。*//*苏州职业大学计算机系 曾海2003-7*/public class MailWrapZeng { private ArrayList to=new ArrayList();//上一章学的终于用上了。嘿嘿 private ArrayList cc=new ArrayList(); private ArrayList bcc=new ArrayList(); private Message msg; private Session session; private String from;//发信只能一个人 private String subject; private String body; private String computer;//发送的主机名/*下面是一堆例行的get/set 方法,不可以直接存取private成员 */ public String getFrom() { return from;}; public void setFrom(String fm) { from=fm;}; public String getSub() { return subject;}; public void setSub(String sb){ subject=sb;}; //这里是关于to的方法4个。 public ArrayList getToTable(){ return to;}; public void setToTable(ArrayList tolist){ to=tolist;}; public void addToUser(String ss){ to.add(ss);}; public void setTo(String ss){ to.add(ss);}; //下面是cc的 public ArrayList getCcTable(){ return cc;}; public void setCcTable(ArrayList ccvalue){ cc=ccvalue;}; public void addToCc(String ss){ cc.add(ss);}; public void setCcTable(String ss){ cc.add(ss);};//bcc的我就不写了,大家补全 public void setText(String text){ body=text;}; public void setMailServer(String hostname){ computer=hostname;};//下面的方法检查是不是参数填得正确 public boolean isOkay(){ if( from==null || from.length() ==0){ System.err.println("没有from字段"); return false; }; if( subject==null || subject.length() ==0){ System.err.println("没有subject字段"); return false; }; if( to.size() ==0){ System.err.println("没有to 字段"); return false; }; if( body==null || body.length() ==0){ System.err.println("没有内容"); return false; }; if( computer ==null || computer.length() ==0){ System.err.println("没有指定服务器"); return false; }; return true; }//ois okaypublic synchronized void go() throws MessagingException{ if(!isOkay()) throw new IllegalArgumentException("go: i have no sufficient parameters"); Properties prop=new Properties(); prop.put("mail.smtp.host",computer); session=Session.getDefaultInstance(prop,null); msg=new MimeMessage(session);//一个message InternetAddress address[];//地址数缓 //取得to 地址列表 address= new InternetAddress[to.size()]; for(int i=0;i<to.size();i++) address[i]=new InternetAddress((String) to.get(i)); msg.setRecipients(Message.RecipientType.TO ,address); msg.setFrom(new InternetAddress(from)); address=new InternetAddress[cc.size() ]; for(int i=0;i<cc.size();i++) address[i]= new InternetAddress( (String) cc.get(i)); msg.setRecipients(Message.RecipientType.CC ,address); msg.setSubject(subject); msg.setText(body); //可以直接transport.send(,sg)不过呢,比较慢,所以不死等了 Thread dd=new Thread(){ public void run(){ try{ Transport.send(msg); }catch(MessagingException e){ throw new IllegalArgumentException( "go threw:"+e.toString() ); };//try };//run };//thread dd.start() ;};public static void send(String MailServer,String recipent,String Sender,String mySubject, String myMessage) throws MessagingException{ MailWrapZeng zeng =new MailWrapZeng(); zeng.setMailServer(MailServer); zeng.addToUser(recipent); zeng.setFrom(Sender); zeng.setSub(mySubject); zeng.setText(myMessage); zeng.go() ;}// public MailWrapZeng() { }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -