随笔 - 115  文章 - 481  trackbacks - 0
<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(19)

随笔档案(115)

文章档案(4)

新闻档案(1)

成员连接

搜索

  •  

最新评论

阅读排行榜

评论排行榜

以前整理的一段代码,来源于网上,大家可以使用它连接到普通的邮件服务器或gmail邮件服务器发送邮件通知等.
现在还只是发送文本邮件,有兴趣的可以再看一下如何发送超文本邮件,带附件等.
//Author:Adrian 20060707

package asdf.asdf.mail;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
//使用gmail的邮件服务器
public  class EmailNoticeEx{
   public static String sendSSLGmail(String fromName,String fromEmail,String smtpServer,String smtpUser,String smtpPassword,String recipient_name,String recipients[],String subject,String message,String encoding){
  try{
   boolean debug = false;
   java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
   // Set the host smtp address
   //  设置系统属性
   Properties props = new Properties();//获得系统属性对象
   props.put("mail.transport.protocol", "smtp");    
   props.put("mail.host", smtpServer);//设置SMTP主机

   MyAuthenticator auth = new MyAuthenticator(smtpUser, smtpPassword);
   //获得邮件会话对象
   Session mailSession = Session.getDefaultInstance(props, auth);
   mailSession.setDebug(debug);
   javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象
   
   //创建MIME邮件对象
   mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
   // create a message
   //Message msg = new MimeMessage(session);

   // set the from and to address
   InternetAddress addressFrom = new InternetAddress(fromEmail,fromName);
   mimeMsg.setFrom(addressFrom);

   InternetAddress[] addressTo = new InternetAddress[recipients.length];
   for (int i = 0; i < recipients.length; i++) {
       addressTo[i] = new InternetAddress(recipients[i]);
   }
   mimeMsg.setRecipients(Message.RecipientType.TO, addressTo);
   // Setting the Subject and Content Type
   mimeMsg.setSubject(subject,encoding);
   mimeMsg.setContent(message, "text/plain");
   mimeMsg.setText(message,encoding);
   Transport.send(mimeMsg);
  }catch(Exception e){
      e.printStackTrace();
      return e.getMessage();
  }
  return null;
 }
//使用普通的邮件服务器  
   public static String sendMail(String fromName,String fromEmail,String smtpServer,String smtpUser,String smtpPassword,String recipient_name,String recipients[],String subject,String message,String encoding){
          try{
           boolean debug = false;
           // Set the host smtp address
           //  设置系统属性
           Properties props = new Properties();//获得系统属性对象
           props.put("mail.transport.protocol", "smtp");
           props.put("mail.smtp.starttls.enable","true");
           props.put("mail.smtp.host", smtpServer);//设置SMTP主机
           props.put("mail.smtp.auth", "true");
           
           MyAuthenticator auth = new MyAuthenticator(smtpUser, smtpPassword);
           //获得邮件会话对象
           Session mailSession = Session.getDefaultInstance(props, auth);
           mailSession.setDebug(debug);
           javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象
           
           //创建MIME邮件对象
           mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
           // create a message
           //Message msg = new MimeMessage(session);

           // set the from and to address
           InternetAddress addressFrom = new InternetAddress(fromEmail,fromName);
           mimeMsg.setFrom(addressFrom);

           InternetAddress[] addressTo = new InternetAddress[recipients.length];
           for (int i = 0; i < recipients.length; i++) {
               addressTo[i] = new InternetAddress(recipients[i]);
           }
           mimeMsg.setRecipients(Message.RecipientType.TO, addressTo);
           // Setting the Subject and Content Type
           mimeMsg.setSubject(subject,encoding);
           mimeMsg.setContent(message, "text/plain");
           mimeMsg.setText(message,encoding);
           Transport.send(mimeMsg);
          }catch(Exception e){
              e.printStackTrace();
              return e.getMessage();
          }
          return null;
         }
           

 
}// end class

// smtp需要验证时候的验证类
class MyAuthenticator
   extends javax.mail.Authenticator {
 private String strUser;
 private String strPwd;
 public MyAuthenticator(String user, String password) {
   this.strUser = user;
   this.strPwd = password;
 }

 protected PasswordAuthentication getPasswordAuthentication() {
   return new PasswordAuthentication(strUser, strPwd);
 }
}

(本文作者:EasyJF开源团队  navIme2 欢迎转载,转载请保留作者声明,谢谢!) 
posted on 2006-07-07 17:27 简易java框架 阅读(1136) 评论(1)  编辑  收藏

FeedBack:
# re: 发送邮件通知的程序.供其它程序调用! 2006-07-07 22:48 纯净水
messageBodyPart = new MimeBodyPart();
DataSource source = new ByteArrayDataSource(bytes[],contentType);
// Set the data handler to the attachment
messageBodyPart.setDataHandler(new DataHandler(source));
// Set the filename
BASE64Encoder enc = new BASE64Encoder();
String fileName="哈哈哈.txt";
//文件名用base64一下,解决中文问题
messageBodyPart.setFileName("=?utf-8?B?"+ enc.encode(fileName.getBytes("utf-8")) + "?=");
//protected Multipart multipart = new MimeMultipart("related");
multipart.addBodyPart(messageBodyPart);
//最后用mailMessage.setContent(multipart);
//这样就OK了,写得乱了一点,,Momail就是用javamail来实现的了,有兴趣的可以到momail.moabc.com去看看  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: