posts - 24,  comments - 25,  trackbacks - 0
          SMTP郵件發送,需要一個SMTP郵件服務器。

          1.驗證發件人的授權
          新建java類,MyAuthenticator.java 內容如下:


          import javax.mail.PasswordAuthentication;

          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);
              }

          }




          2.SMTP郵件發送
          新建java類,SendEmail.java 內存如下:

          import javax.activation.DataHandler;
          import javax.activation.FileDataSource;
          import javax.mail.BodyPart;
          import javax.mail.Message;
          import javax.mail.Multipart;
          import javax.mail.Session;
          import javax.mail.Transport;
          import javax.mail.internet.InternetAddress;
          import javax.mail.internet.MimeBodyPart;
          import javax.mail.internet.MimeMessage;
          import javax.mail.internet.MimeMultipart;


          public class SendEmail
          {
              
          private static String host     = ""// SMTP服務器地址

              
          private static String password = ""// 密碼

              
          private static String from     = ""// 發件人

              
          private static String to       = "";  // 收件人

              
          private static String cc       = “”;  // 抄送人(中間使用;隔開)

              
          public static void send(String subject, String content, String filename)
              
          {
                  Properties props 
          = System.getProperties();

                  props.put(
          "mail.smtp.host", host);//指定SMTP服務器
                  props.put("mail.transpost.protocol""smtp");
                  props.put(
          "mail.smtp.port""25");
                  props.put(
          "mail.smtp.auth""true");//指定是否需要SMTP驗證
                  
                  
          //需要SSL安全驗證
                  props.setProperty("mail.smtp.starttls.enable""true"); 

          //        props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
          //        props.setProperty("mail.smtp.socketFactory.fallback", "false");
          //        props.setProperty("mail.smtp.socketFactory.port", "25");
                  try
                  
          {
                      MyAuthenticator myauth 
          = new MyAuthenticator(from, password);
                      Session mailSession 
          = Session.getDefaultInstance(props, myauth);
                      mailSession.setDebug(
          true);//是否在控制臺顯示debug信息

                      Message message 
          = new MimeMessage(mailSession);
                      message.setFrom(
          new InternetAddress(from));//發件人
                      message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));//收件人
                      
          // 是否有抄送人
                      if (!StringUtil.isBlank(cc))
                      
          {
                          String[] bccs 
          = cc.split(";");
                          InternetAddress bcc 
          = null;
                          InternetAddress[] bccAddrs 
          = new InternetAddress[bccs.length];
                          
          for (int i = 0; i < bccs.length; i++)
                          
          {
                              
          if (!"".equals(bccs[i].trim()))
                              
          {
                                  bcc 
          = new InternetAddress(bccs[i].trim());
                                  bccAddrs[i] 
          = bcc;
                              }

                          }

                          message.setRecipients(Message.RecipientType.CC, bccAddrs);
                      }

                      message.setSubject(subject);
          //郵件主題
                      
          // 有附件
                      if (!StringUtil.isBlank(filename))
                      
          {
                          Multipart mp 
          = new MimeMultipart();
                          BodyPart bp 
          = new MimeBodyPart();

                          bp.setContent(content, 
          "text/html;charset=utf-8");//郵件正文
                          mp.addBodyPart(bp);

                          File file 
          = new File(filename);
                          
          if (file.exists())
                          
          {
                              BodyPart mdp 
          = new MimeBodyPart();
                              FileDataSource fileds 
          = new FileDataSource(file);
                              mdp.setDataHandler(
          new DataHandler(fileds));
                              mdp.setFileName(fileds.getName());
                              mp.addBodyPart(mdp);
                          }

                          message.setContent(mp);
                      }

                      
          // 無附件
                      else
                      
          {
                          message.setContent(content, 
          "text/html;charset=utf-8");//郵件正文
                      }

                      message.saveChanges();

                      Transport.send(message);

                  }

                  
          catch (Exception e)
                  
          {
                      
          return;
                  }

              }



              
          public static void main(String[] args)
              
          {
                  SendEmail.send(
          "測試郵件""郵件發送測試!",  "本地附件地址");
              }


          posted on 2011-04-19 10:42 Jarry 閱讀(252) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 莆田市| 宁波市| 齐齐哈尔市| 密山市| 罗甸县| 千阳县| 富锦市| 岚皋县| 缙云县| 水富县| 延川县| 双鸭山市| 项城市| 蓬溪县| 九龙坡区| 石嘴山市| 樟树市| 清流县| 栾城县| 兖州市| 武宁县| 吉林市| 宣武区| 洱源县| 博爱县| 潍坊市| 鸡东县| 马公市| 望江县| 黄平县| 砀山县| 城口县| 武强县| 中牟县| 外汇| 泰宁县| 会理县| 长白| 云和县| 霍山县| 潜山县|