2016-11-17 4 views
0

Ich bekomme die Syntax für die folgende Zeile beim Versuch, die Mail über SMTP zu senden. Ich versuchte in Google, aber nicht jede relevante Antwort erhalten.Syntaxfehler in property.setProperty erhalten ("mail.smtp.host", host);

property.setProperty ("mail.smtp.host", host);

Code:

public class SendMail { 

//Recipient Mail id 
String to = "Receiver Mail ID"; 
//Sender Mail Id 
String from = "Sender Mail ID"; 
//Sending email from the localhost 
String host = "localhost"; 
//Get System Properties 
Properties property = System.getProperties(); 
//Setup the mail server 
property.setProperty("mail.smtp.host",host); 
property.setProperty("mail.smtp.port" , "465"); 
//property.put("mail.smtp.auth", "true"); 
//Get the default session object 
Session session = Session.getDefaultInstance(property); 


try 
{ 
    //Create a default MimeMessage object. 
    MimeMessage message = new MimeMessage(session); 
    //Set From: header field of the header 
    message.setFrom(new InternetAddress(from)); 
    //Set To : header field of the header 
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); 

    //Set Subject : header field 
    message.setSubject("Automation Testing Report"); 

    //Create the Message part 
    BodyPart messageBodypart = new MimeBodyPart(); 

    //Enter the message in the Mail Body 
    messageBodypart.setText("***********Find the below for the Report****************"); 

    //Create a Multipart Message 
    Multipart multipart = new MimeMultipart(); 

    //Set Text message part 
    multipart.addBodyPart(messageBodypart); 


    //Part two is attachment 
    /*create the Message part*/ 
    messageBodypart = new MimeBodyPart(); 
    String filename = "E:\\Project\\jar\\Selenium  Scripts\\Hybrid_Driven\\test-output\\emailable-report.html"; 
    DataSource source = new FileDataSource(filename); 
    messageBodypart.setDataHandler(new DataHandler(source)); 
    messageBodypart.setFileName(filename); 
    //set the text message part 
    multipart.addBodyPart(messageBodypart); 

    //Send the complete message part 
    message.setContent(multipart); 


    //Send message 
    Transport.send(message); 
    System.out.println("Mail has sent successfully"); 

} 

catch(MessagingException mex) 
{ 
    mex.printStackTrace(); 
} 

} 

} 

Bitte helfen Sie mir, dieses Problem zu lösen.

Antwort

1

Sie können Java-Code nicht direkt in eine Klasse eingeben. Es muss innerhalb von Methoden sein. Folgendes wird vom Compiler gerne angenommen:

+0

Ya super es wurde behoben. Aber was ist der Grund. Wir sollten es in der Klassendefinition nicht erwähnen? –

+0

Klassendefinitionen sind nicht dazu gedacht, Code in Java auszuführen. Dies scheint in anderen Sprachen anders zu sein, z.B. Scala. Aber der Code in der Klassendefinition in scala ist implizit nur ein Teil des Standardkonstruktors. Grundsätzlich definiert die Klassendefinition, welche Memberfelder und Methoden eine Klasse hat. Konstruktoren und Methoden können dann mit diesen Feldern und Methoden arbeiten –

+0

Vielen Dank für die Klarstellung .Eine weitere Sache durch Ausführen dieser Klasse ich bekomme keine E-Mails als eine Ausgabe.ich weiß nicht, ob es ausgeführt wird oder nicht. Wie Sie das finden . Ich benutze POM Modell –

Verwandte Themen