2015-03-10 3 views
0

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

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

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

+0

Взгляните http://stackoverflow.com/questions/26087018/sending-emails-through-java-javax-mail-messagingexception-could-not-connect-t/26092701#26092701 – Anptk

ответ

1

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

0

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

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

0

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

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

  • mail.jar
  • activation.jar

Heres the link

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();} 
    } 
} 
+0

Это то, что я не хотят делать. Это связано с хостом, который имеет почтовый сервер. Попробуйте запустить код без каких-либо изменений, он не будет работать, поскольку нет активного сервера. –