0
我正在用Java框架構建一個銀行應用程序,該框架涉及發送電子郵件(使用SMTP服務器),但我聽說它不安全。那麼如何讓Java在SMTP中安全呢? SSL層和/或HTTPS連接是否足夠?請幫忙。如何使用Java來保證SMTP服務器的安全
謝謝。
我正在用Java框架構建一個銀行應用程序,該框架涉及發送電子郵件(使用SMTP服務器),但我聽說它不安全。那麼如何讓Java在SMTP中安全呢? SSL層和/或HTTPS連接是否足夠?請幫忙。如何使用Java來保證SMTP服務器的安全
謝謝。
不需要在您的Java應用程序中使SMTP安全,您需要對SMTP服務器進行配置更改,以便服務器僅通過特定的ID傳遞郵件並忽略其他郵件。
顯然你可以在Spring上使用SMTP over SSL。這裏的樣本:
XML資源
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailS enderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="465" />
<property name="protocol" value="smtps" />
<property name="username" value="[email protected]"/>
<property name="password" value="yourPassword"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtps.auth">true</prop>
<prop key="mail.smtps.starttls.enable">true</prop>
<prop key="mail.smtps.debug">true</prop>
</props>
</property>
</bean>
<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage" >
<property name="from" value="[email protected]" />
<property name="subject" value="Your Subject" />
</bean>
</beans>
測試類
package test.mail;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.test.AbstractDependencyInjecti onSpringContextTests;
/**
* MailTest.
* @author jalarcon
*/
public class MailTest extends AbstractDependencyInjectionSpringContextTests {
private MailSender mailSender;
private SimpleMailMessage mailMessage;
/* (non-Javadoc)
* @see org.springframework.test.AbstractSingleSpringConte xtTests#getConfigLocations()
*/
@Override
protected String[] getConfigLocations() {
return new String[] {"/beanDictionary/mail.xml"};
}
public void testSendMail() {
//Create a thread safe "sandbox" of the message
SimpleMailMessage msg = new SimpleMailMessage(this.mailMessage);
msg.setTo("[email protected]");
msg.setText("This is a test");
try{
mailSender.send(msg);
} catch(MailException ex) {
throw new RuntimeException(ex);
}
}
// ---------------------------------------------------------- getters/setters
/**
* @return the mailSender
*/
public MailSender getMailSender() {
return mailSender;
}
/**
* @param mailSender the mailSender to set
*/
public void setMailSender(MailSender mailSender) {
this.mailSender = mailSender;
}
/**
* @return the mailMessage
*/
public SimpleMailMessage getMailMessage() {
return mailMessage;
}
/**
* @param mailMessage the mailMessage to set
*/
public void setMailMessage(SimpleMailMessage mailMessage) {
this.mailMessage = mailMessage;
}
}