我们有一个使用JSP,Servlet和Hibernate开发的Web应用程序。我们必须从应用程序发送一些自动电子邮件(我们只需要发送。我们可以硬编码发送帐户名称等)。
我遇到了Apache James。但我不确定您是否可以将该应用程序作为库分发,用户无需手动配置它。
PHP开发人员声称他们可以在没有服务器的情况下发送电子邮件,因此Java也必须这样做。如果Apache James不可能使用它,还有什么?
答案 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文件:
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();}
}
}