2013-09-21 29 views
0

我正在用Java框架構建一個銀行應用程序,該框架涉及發送電子郵件(使用SMTP服務器),但我聽說它不安全。那麼如何讓Java在SMTP中安全呢? SSL層和/或HTTPS連接是否足夠?請幫忙。如何使用Java來保證SMTP服務器的安全

謝謝。

回答

0

不需要在您的Java應用程序中使SMTP安全,您需要對SMTP服務器進行配置更改,以便服務器僅通過特定的ID傳遞郵件並忽略其他郵件。

0

顯然你可以在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; 
} 

} 
相關問題