2017-09-25 1 views
2
public static void main(String [] args){ 

    String to="[email protected]";//change accordingly 
    final String user="[email protected]";//change accordingly 
    final String password="xxxxxx";//change accordingly 

    Properties pro = System.getProperties(); 
    pro.setProperty("mail.smtp.host", "mail.javatpoint.com"); 
    pro.put("mail.smtp.auth", "true"); 

    Session session = Session.getDefaultInstance(pro, new javax.mail.Authenticator() { 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(user,password); 
      } 
      });  

    try{ 
     MimeMessage message = new MimeMessage(session); 
     message.setFrom(new InternetAddress(user)); 
     message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); 
     message.setSubject("certificate"); 

     BodyPart msg = new MimeBodyPart(); 
     msg.setText("bodyPartMsg"); 

     MimeBodyPart messageBodyPart2 = new MimeBodyPart(); 
     System.out.println("attach"); 
     String filename = "C:\\Users\\Rudresh Mehta\\Desktop\\flow for certiManipulator";//change accordingly 
     System.out.println("attach complete"); 
     DataSource source = new FileDataSource(filename); 
     messageBodyPart2.setDataHandler(new DataHandler(source)); 
     messageBodyPart2.setFileName(filename); 

     Multipart multipart = new javax.mail.internet.MimeMultipart(); 

     multipart.addBodyPart(msg); 
     multipart.addBodyPart(messageBodyPart2); 


     //6) set the multiplart object to the message object 
     message.setContent(multipart); 
     //7) send message 

* meine Frage ist, warum, wenn es darum geht, hier als sobald Transport gegeben ist es bewegt sich in fangen und dann aus und Mail wird nicht gesendet und wie im Titel erwähnt, dass Fehler in Catch angezeigt wird, wenn E gedruckt wird. * Transport.send (Nachricht);
System.out.println ("Nachricht gesendet ....");com.sun.mail.smtp.SMTPSendFailedException: 550 Zugriff verweigert - Ungültige HELO Namen (siehe RFC2821 4.1.1.1)

}catch(Exception e) 
    { 
     System.out.print(e); 
     System.out.println("in catch"); 
    } 
    System.out.println("complete"); 
+0

Wegen der Ausnahme? –

+0

Was ist der Hostname? 'HELO' wird verwendet, um den sendenden Rechner zu identifizieren, und sollte einen Hostnamen als Argument angeben ... –

Antwort

0

Wenn es nicht Ihren lokalen Host-Namen richtig Aufnehmen, stellen Sie die mail.smtp.localhost Eigenschaft auf Ihren Hostnamen.

Verwandte Themen