我有以下要求。
我已经验证了超过40个给定的应用程序路径,并将电子邮件发送到发布组,每60分钟发布一次路径并发布详细信息。
我在考虑在我的应用程序中使用哪个电子邮件框架。
我目前在我的maven项目中使用spring和jdk1.6来验证路径。
如果有任何异常访问发送给组的电子邮件的路径或文件夹,我可能需要附加错误日志(异常详细信息)。
请告知相应的电子邮件机制。链接到Web上的存在代码或示例代码非常有用。
我的团队说他们正在使用log4j框架发送电子邮件。但我在想为什么不使用Spring。我不知道如何选择最佳机制来支持我的要求。
答案 0 :(得分:1)
https://java.net/projects/javamail/pages/Home
当然,这只是客户方。
如果你还需要一个邮件服务器(可能用于测试目的),我认为apache james(https://james.apache.org/)并不难以安装和使用
这里有一些如何做的例子
http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/
答案 1 :(得分:0)
您可以使用Spring Mail发送电子邮件,这非常简单明了。
将这些依赖项添加到您的POM:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>...</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>mailapi</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>smtp</artifactId>
<version>1.5.0</version>
</dependency>
配置Spring Mail bean:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"
p:defaultEncoding="utf-8"
p:host="smtp.example.org"
p:port="25" />
<!-- This is a template message that we can pre-load with default state. -->
<bean id="templateMessage" class="org.springframework.mail.SimpleMailMessage"
p:from="no-reply@example.org"
p:subject="Testing message FTW!" />
</beans>
或者如果你更喜欢基于Java的配置(用Groovy编写):
@Configuration
class MailConfig {
@Bean mailSender() {
new JavaMailSenderImpl (
defaultEncoding: 'utf-8',
host: 'smtp.example.org',
port: 25
)
}
@Bean templateMessage() {
new SimpleMailMessage (
from: 'no-reply@example.org',
subject: 'Testing message FTW!'
)
}
}
最后发送一些电子邮件!
@Slf4j
public class EmailSenderExample {
private MailSender mailSender;
private SimpleMailMessage templateMessage;
public void sendMail() {
log.info("Sending email...");
// Create a thread-safe "copy" of the template message and customize it.
SimpleMailMessage msg = new SimpleMailMessage(templateMessage);
msg.setTo("flynn@encom.com");
msg.setText("Greetings, programs!");
try {
mailSender.send(msg);
} catch (MailException ex) {
log.warn("Email sending failed", ex);
}
}
}