2016-06-25 2 views
0

У меня есть проект Gradle в моей Eclipse IDE, и мне нужно иметь возможность отправлять квитанцию ​​по электронной почте в рамках школьного проекта. Я посмотрел на эту ссылку http://www.tutorialspoint.com/java/java_sending_email.htm, чтобы попытаться создать самое основное электронное письмо. Я пытался «отправка простой электронной почты» пример, и я получил это как моя ошибка:Запуск API JavaMail в проекте Gradle на Eclipse

Usage - java org.mortbay.jetty.Main [<addr>:]<port> 
Usage - java org.mortbay.jetty.Main [<addr>:]<port> docroot 
Usage - java org.mortbay.jetty.Main [<addr>:]<port> -webapp myapp.war 
Usage - java org.mortbay.jetty.Main [<addr>:]<port> -webapps webapps 
Usage - java -jar jetty-x.x.x-standalone.jar [<addr>:]<port> 
Usage - java -jar jetty-x.x.x-standalone.jar [<addr>:]<port> docroot 
Usage - java -jar jetty-x.x.x-standalone.jar [<addr>:]<port> -webapp myapp.war 
Usage - java -jar jetty-x.x.x-standalone.jar [<addr>:]<port> -webapps webapps 

Я предполагаю, что я не имею API JavaMail и Java Activation Framework (JAF) установлен правильно , Я проследил за тем, как это сделать. То, что я сделал, - это проект щелчка правой кнопкой мыши -> Свойства -> Путь сборки Java -> вкладка Библиотеки -> Добавить внешние JAR .. И я добавил файлы JAF и JavaMail jar (активация-1.1.1.jar и mail-1.4 .5.jar). Я также добавил

compile group: 'javax.mail', name: 'mail', version: '1.4.5' 
compile group: 'javax.activation', name: 'activation', version: '1.1.1' 

в мой файл build.gradle. Любая помощь в том, как получить эту работу, будет очень благодарна.

Вот код, который я использовал.

// File Name SendEmail.java 

import java.util.*; 
import javax.mail.*; 
import javax.mail.internet.*; 
import javax.activation.*; 

public class SendEmail 
{ 
    public static void main(String [] args) 
{  
     // Recipient's email ID needs to be mentioned. 
    String to = "[email protected]"; 

    // Sender's email ID needs to be mentioned 
    String from = "[email protected]"; 

    // Assuming you are sending email from localhost 
    String host = "localhost"; 

    // Get system properties 
    Properties properties = System.getProperties(); 

    // Setup mail server 
    properties.setProperty("mail.smtp.host", host); 

    // Get the default Session object. 
    Session session = Session.getDefaultInstance(properties); 

    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("This is the Subject Line!"); 

    // Now set the actual message 
    message.setText("This is actual message"); 

    // Send message 
    Transport.send(message); 
    System.out.println("Sent message successfully...."); 
    }catch (MessagingException mex) { 
    mex.printStackTrace(); 
    } 
} 
} 
+0

разместить свой код, что вы написали до сих пор, чтобы отправить по электронной почте , – Rish

+0

Я использовал тот же самый код, который был указан в ссылке для учебника в моем сообщении. – Anthony

+0

Ваша ошибка, похоже, не имеет ничего общего с JavaMail. Похоже на ошибку, возникающую при запуске Jetty (веб-сервера Java) с неправильными аргументами. Возможно, вам захочется описать, как вы пытаетесь запустить приложение, и тип проекта Eclipse, который вы используете. –

ответ

0

Необходимо отправить правильные настройки для отправки электронной почты. как

String host = "localhost"; // instead of localhost you have to give your hostname. 

Если вы хотите отправить почту через Gmail, используйте следующий код:

SendEmail.java

import java.util.Properties; 

import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

public class SendEmail{ 

    public static void main(String[] args) { 

     final String username = "[email protected]"; 
     final String password = "password"; 

     Properties props = new Properties(); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.port", "587"); 

     Session session = Session.getInstance(props, 
      new javax.mail.Authenticator() { 
      protected PasswordAuthentication getPasswordAuthentication() { 
       return new PasswordAuthentication(username, password); 
      } 
      }); 

     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("Welcome Message"); 

      Transport.send(message); 

      System.out.println("Mail Sent Successfully"); 

     } catch (MessagingException e) { 
      throw new RuntimeException(e); 
     } 
    } 
} 
+0

Я пробовал этот код, и он говорит мне войти в мой браузер и повторить попытку, даже если я зарегистрирован на адрес электронной почты в своем браузере. – Anthony

+0

Вы вошли в gmail с тем же идентификатором и паролем, который вы предоставляете в следующих полях: ** 'final String username =" [email protected] ";' ** ** 'final String password = "password"; ** И ваш ** '" [email protected] "** также должен совпадать с вашим именем пользователя. – Rish

+0

Да, я сделал все это. – Anthony