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

          1.驗證發(fā)件人的授權
          新建java類,MyAuthenticator.java 內(nèi)容如下:


          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郵件發(fā)送
          新建java類,SendEmail.java 內(nèi)存如下:

          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     = ""// 發(fā)件人

              
          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));//發(fā)件人
                      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(
          "測試郵件""郵件發(fā)送測試!",  "本地附件地址");
              }


          posted on 2011-04-19 10:42 Jarry 閱讀(250) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 靖江市| 子长县| 儋州市| 安塞县| 固原市| 东丽区| 西林县| 炎陵县| 广西| 嘉定区| 永春县| 长寿区| 安国市| 拜泉县| 南丰县| 耒阳市| 崇义县| 南京市| 晋中市| 红桥区| 兴文县| 阳东县| 汪清县| 定结县| 登封市| 屯门区| 黑水县| 鄂伦春自治旗| 绥德县| 海阳市| 石嘴山市| 台前县| 南郑县| 金山区| 荥经县| 昌吉市| 淮北市| 南城县| 安阳市| 枣阳市| 东平县|