使用Java发送电子邮件

时间:2015-03-10 05:08:56

标签: java jsp email servlets james

我们有一个使用JSP,Servlet和Hibernate开发的Web应用程序。我们必须从应用程序发送一些自动电子邮件(我们只需要发送。我们可以硬编码发送帐户名称等)。

我遇到了Apache James。但我不确定您是否可以将该应用程序作为库分发,用户无需手动配置它。

PHP开发人员声称他们可以在没有服务器的情况下发送电子邮件,因此Java也必须这样做。如果Apache James不可能使用它,还有什么?

3 个答案:

答案 0 :(得分:1)

您不需要Apache James发送电子邮件。使用Java mail api:http://www.oracle.com/technetwork/java/javamail/index.html。 Java邮件api连接到邮件服务器以发送电子邮件(通常是SMTP协议)。 http://java.net/projects/javamail/downloads/download/javamail-samples.zip处有几个样本。查看* send *示例以了解如何发送电子邮件。如果您正在使用spring框架,那么您将获得java邮件包装器,它可以简化代码。

答案 1 :(得分:0)

正如有人所说,Java Mail是您用Java发送电子邮件所需的全部内容。您需要提供允许您连接到SMTP服务器的配置。

如果PHP开发人员不需要提供这些东西,那是因为它通常由互联网服务提供商完成。

答案 2 :(得分:0)

使用JavaMail API发送电子邮件的简单示例

在此示例中,我们将学习如何通过机器上安装的SMTP服务器发送电子邮件,例如Postcast服务器,Apache James服务器,Cmail服务器等。如果要使用主机提供商提供的SMTP服务器发送电子邮件,请参阅此示例之后的示例。 要使用JavaMail API发送电子邮件,您需要加载两个jar文件:

  • 的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 = "sonoojaiswal1988@gmail.com";//change accordingly  
      String from = "sonoojaiswal1987@gmail.com";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();}  
   }  
}