package mails;
import javax.mail.*;
import javax.mail.internet.*;
public class QuickMailText {
 public static void sendMessage(String smtpHost,String from,String to,String subject,String messageText)throws MessagingException{
   System.out.println("Configuring mail session for:"+smtpHost);
   SmtpAuth sa=new SmtpAuth();
   sa.getuserinfo("xxxx","xxxxx");
   java.util.Properties props=new java.util.Properties();
   props.put("mail.smtp.auth","true");
   props.put("mail.smtp.host",smtpHost);
   System.out.println("Constructing message- from="+from+" to="+to);
   InternetAddress fromAddress=new InternetAddress(from);
   InternetAddress[] toAddresss=new InternetAddress[3];
   toAddresss[0]=new InternetAddress("[email protected]");
   toAddresss[1]=new InternetAddress("[email protected]");
   toAddresss[2]=new InternetAddress("[email protected]");
   int i=0;
   while(i<toAddresss.length){
   Session mailSession=Session.getDefaultInstance(props,sa);
   MimeMessage testMessage=new MimeMessage(mailSession);
   testMessage.setFrom(fromAddress);
   testMessage.addRecipient(javax.mail.Message.RecipientType.TO,toAddresss[i]);
   testMessage.setSentDate(new java.util.Date());
   testMessage.setSubject(subject);
   testMessage.setText(messageText);
   System.out.println("Message constructed");   Transport.send(testMessage);
   System.out.println("Message sent!");
   i++;
   }
 }  public static void main(String[] args){
    String smtpHost="smtp.citiz.net";
    String from="[email protected]";
    String to="xxxxxx.net";
    String subject="Test message";
    StringBuffer theMessage=new StringBuffer();
    theMessage.append("ddddhello22,\n\n");
    theMessage.append("Hope all is well on you end.\n");
    theMessage.append("Cheers");
    try{
      QuickMailText.sendMessage(smtpHost,from,to,subject,theMessage.toString());
    }catch(javax.mail.MessagingException exc){
      exc.printStackTrace();
    }
  }  static class SmtpAuth extends javax.mail.Authenticator {
   private String user,password;   public void getuserinfo(String getuser,String getpassword){
     user = getuser;
     password = getpassword;
   }
   protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
     return new javax.mail.PasswordAuthentication(user,password);
   }
  }}收
package mails;
import javax.mail.*;
public class MessageList {
 public static void main(String[] args){
   String host="pop.citiz.net";
   String username=".....";
   String password=".....";
   try{
     //Step 1:Configure the mail session
     System.out.println("Configuring mail session for:"+host);
     java.util.Properties  props=new java.util.Properties();
     props.put("mail.pop3.host",host);
     Session mailSession=Session.getDefaultInstance(props);     //step2: Retrieve and connect to the stroe
     System.out.println("Connecting to message store:"+host);
     Store msgStore=mailSession.getStore("pop3");
     msgStore.connect(host,username,password);
     System.out.println("Connected!");     //Step3:Retreieve the inbox folder
     Folder inbox=msgStore.getDefaultFolder().getFolder("INBOX");
     inbox.open(Folder.READ_ONLY);     //Step4: Retrieve a list of messge
     Message[] msgs=inbox.getMessages();
     FetchProfile profile=new FetchProfile();
     profile.add(FetchProfile.Item.ENVELOPE);
     inbox.fetch(msgs,profile);     //Step 5:Display the subject and date for each messge
     int count=inbox.getMessageCount();
     for(int i=0;i<count;i++){
       System.out.println("Message #"+msgs[i].getMessageNumber());
       System.out.println("Subject:"+msgs[i].getSubject());
       System.out.println("Date:"+msgs[i].getSentDate());
       System.out.println("-----------------\n");
     }     //Setp 6:close up shop
     inbox.close(false);
     msgStore.close();
   }
   catch(javax.mail.MessagingException e){
     e.printStackTrace();
   }
 }
}

解决方案 »

  1.   

    cgsun(其实我明白你的暗示!!) 有没有跨越代理使用JavaMail的例子?
      

  2.   

    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.Date;
    import javax.activation.*;
    import java.io.*;public class sendMail1 { 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 sendMail1(String smtp) {
    setSmtpHost(smtp);
    createMimeMessage();
    } /**
    * @param hostName String
    */
    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主机
    } /**
    * @return boolean
    */
    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(); return true;
    } catch (Exception e) {
    System.err.println("创建MIME邮件对象失败!" + e);
    return false;
    }
    } /**
    * @param need boolean
    */
    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");
    }
    } /**
    * @param name String
    * @param pass String
    */
    public void setNamePass(String name, String pass) {
    username = name;
    password = pass;
    } /**
    * @param mailSubject String
    * @return boolean
    */
    public boolean setSubject(String mailSubject) {
    System.out.println("设置邮件主题!");
    try {
    mimeMsg.setSubject(mailSubject);
    return true;
    } catch (Exception e) {
    System.err.println("设置邮件主题发生错误!");
    return false;
    }
    } /**
    * @param mailBody String
    */
    public boolean setBody(String mailBody) {
    try {
    BodyPart bp = new MimeBodyPart();
    bp.setContent(
    "<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
    + mailBody,
    "text/html;charset=GB2312");
    mp.addBodyPart(bp); return true;
    } catch (Exception e) {
    System.err.println("设置邮件正文时发生错误!" + e);
    return false;
    }
    } /**
    * @param name String
    * @param pass String
    */
    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;
    }
    } /**
    * @param name String
    * @param pass String
    */
    public boolean setFrom(String from) {
    System.out.println("设置发信人!");
    try {
    mimeMsg.setFrom(new InternetAddress(from)); //设置发信人
    return true;
    } catch (Exception e) {
    return false;
    }
    } /**
    * @param name String
    * @param pass String
    */
    public boolean setTo(String to) {
    if (to == null)
    return false; try {
    mimeMsg.setRecipients(
    Message.RecipientType.TO,
    InternetAddress.parse(to));
    return true;
    } catch (Exception e) {
    return false;
    } } /**
    * @param name String
    * @param pass String
    */
    public boolean setCopyTo(String copyto) {
    if (copyto == null)
    return false;
    try {
    mimeMsg.setRecipients(
    Message.RecipientType.CC,
    (Address[]) InternetAddress.parse(copyto));
    return true;
    } catch (Exception e) {
    return false;
    }
    } /**
    * @param name String
    * @param pass String
    */
    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;
    }
    } /**
    * Just do it as this
    */
    public static void main(String[] args) { String mailbody =
    "<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
    + "<div align=center><a href=http://www.csdn.net> csdn </a></div>"; sendMail1 themail = new sendMail1("smtp.sina.com");//需要设置
    themail.setNeedAuth(true); if (themail.setSubject("标题") == false)
    return;
    if (themail.setBody(mailbody) == false)
    return;
    if (themail.setTo("[email protected]") == false)
    return;
    if (themail.setFrom("[email protected]") == false)
    return;
    if (themail.addFileAffix("c:\\sqlnet.log") == false)
    return;
    themail.setNamePass(yourusername, youpassword);//需要修改 if (themail.sendout() == false)
    return;
    }
    }自己改一下里面标记的内容,应该没有问题的
      

  3.   

    看过了,写得很好。
    cgsun 你学java多长时间了,羡慕ing。