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 閱讀(259) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 农安县| 宜兰县| 酒泉市| 龙泉市| 收藏| 商都县| 前郭尔| 大丰市| 鹿泉市| 湘乡市| 临清市| 平凉市| 游戏| 太和县| 大新县| 璧山县| 金阳县| 卓尼县| 临洮县| 塔城市| 大荔县| 临武县| 泗水县| 江源县| 赤城县| 临沧市| 丹棱县| 宜阳县| 盖州市| 亚东县| 淮阳县| 黄大仙区| 沙坪坝区| 香河县| 丰顺县| 龙胜| 涞源县| 大余县| 攀枝花市| 青岛市| 济源市|