Отправка писем с помощью Java

У нас есть веб-приложение, разработанное с использованием JSP, Servlet и Hibernate. Мы должны отправить несколько автоматических электронных писем из приложения (нам нужно только отправить. мы можем жестко закодировать имя учетной записи отправки и т. д.).

Я наткнулся на Apache James. Но я не уверен, можно ли распространять его вместе с приложением в виде библиотеки, где пользователям не нужно настраивать его вручную.

Разработчики PHP утверждают, что они могут отправлять электронные письма без сервера, поэтому Java тоже может. Если Apache James с этим невозможен, что еще?


person JustCause    schedule 10.03.2015    source источник
comment
Взгляните на stackoverflow.com/questions/26087018/   -  person Anptk    schedule 10.03.2015


Ответы (3)


Вам не нужен Apache James для отправки электронных писем. Используйте почтовый API Java: http://www.oracle.com/technetwork/java/javamail/index.html. API почты Java подключается к почтовому серверу для отправки электронной почты (обычно протокол SMTP). Несколько примеров можно найти по адресу http://java.net/projects/javamail/downloads/download/javamail-samples.zip. Посмотрите примеры *send*, чтобы понять, как отправлять электронную почту. Если вы используете Spring Framework, вы получаете почтовые оболочки Java, которые значительно упрощают код.

person RaviH    schedule 10.03.2015

Как кто-то сказал, Java Mail — это все, что вам нужно для отправки электронной почты на Java. Однако вам нужно будет предоставить конфигурацию, которая позволит вам подключиться к SMTP-серверу.

Если разработчикам PHP не нужно предоставлять этот материал, то это потому, что обычно это делает поставщик интернет-услуг.

person Maurice Perry    schedule 10.03.2015

Простой пример отправки электронной почты с помощью JavaMail API

В этом примере мы узнаем, как отправлять электронную почту с помощью SMTP-сервера, установленного на машине, например. Postcast-сервер, сервер Apache James, сервер Cmail и т. д. Если вы хотите отправлять электронную почту с помощью SMTP-сервера, предоставленного хост-провайдером, см. пример после этого. Для отправки электронной почты с использованием API JavaMail вам необходимо загрузить два файла jar:

  • mail.jar
  • Активация.jar

Вот ссылка

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

public class SendEmail  
{  
 public static void main(String [] args){  
      String to = "[email protected]";//change accordingly  
      String from = "[email protected]";change accordingly  
      String host = "localhost";//or IP address  

     //Get the session object  
      Properties properties = System.getProperties();  
      properties.setProperty("mail.smtp.host", host);  
      Session session = Session.getDefaultInstance(properties);  

     //compose the message  
      try{  
         MimeMessage message = new MimeMessage(session);  
         message.setFrom(new InternetAddress(from));  
         message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));  
         message.setSubject("Ping");  
         message.setText("Hello, this is example of sending email  ");  

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

      }catch (MessagingException mex) {mex.printStackTrace();}  
   }  
}  
person George Rosario    schedule 10.03.2015
comment
Это то, чего я не хочу делать. Это подключается к хосту, на котором есть почтовый сервер. Попробуйте запустить свой код без каких-либо изменений, он не будет работать, так как нет активного сервера. - person JustCause; 10.03.2015