2012-12-14 29 views
0

嗨我必須用java發郵件。用java發郵件不帶gmail驗證

以下已成功爲我工作。

  public class SendMail { 

      public static void main(String[] args) {     
       Properties props = new Properties(); 
       props.put("mail.smtp.host", "smtp.gmail.com"); 
       props.put("mail.smtp.socketFactory.port", "465"); 
       props.put("mail.smtp.socketFactory.class", 
           "javax.net.ssl.SSLSocketFactory"); 
       props.put("mail.smtp.auth", "true"); 
       props.put("mail.smtp.port", "465"); 

       Session session = Session.getDefaultInstance(props, 
            new javax.mail.Authenticator() { 
            protected PasswordAuthentication getPasswordAuthentication() { 
             return new PasswordAuthentication("[email protected]","xxxxx!1"); 
            } 
            }); 

        try { 
         Message message = new MimeMessage(session); 
         message.setFrom(new InternetAddress("[email protected]")); 
         message.setRecipients(Message.RecipientType.TO, 
             InternetAddress.parse("[email protected]")); 
         message.setSubject("Testing Subject"); 
         message.setText("Dear Mail Crawler," + 
             "\n\n No spam to my email, please!"); 
         Transport.send(message); 
         System.out.println("Done"); 
         } catch (MessagingException e) { 
          throw new RuntimeException(e); 
         } 
       } 

      } 

這裏我提到了gmail的用戶名和密碼。但我必須在我的代碼中發送電子郵件,而不使用用戶名和密碼。我該如何開發這個。請幫幫我。

+16

現在我要做的第一件事就是在這裏張貼後更改我的Gmail密碼!爲了提高安全性,請打開2因素身份驗證。 – jlordo

+2

是的,當在stackoverflow上詢問時,您應該始終混淆敏感數據(公司名稱等)。 – jabal

+4

脫離主題:你不應該寫一封電子郵件給垃圾郵件發送者 – kromit

回答

3

創建一個mail.properties文件並將用戶名和密碼放入該文件中。使用屬性從代碼中檢索該文件中的數據。加載

此鏈接可能是有用的Properties對象

http://www.dzone.com/snippets/loading-property-file

+0

我沒有提及我的gmail用戶名和密碼在我的代碼中的任何地方。你可以用java發送郵件 – user1897014

+0

你可以從任何機器匿名發送郵件,不需要在收件箱中發送。 – Subin

+0

no.i已經在我的收件箱中發送郵件了,但是在我的代碼行下面我提到了我的mailid.that的用戶名和密碼。我沒有提及用戶名和密碼,同時我的郵件正在郵件收件箱中發送其他任何可能的方式都可以在這裏找到。返回新的PasswordAuthentication(「[email protected]」,「xxxx!1」); – user1897014