【问题标题】:How to make SMTP Server secure using Java如何使用 Java 使 SMTP 服务器安全
【发布时间】:2013-09-26 18:00:44
【问题描述】:

我正在使用涉及发送电子邮件(使用 SMTP 服务器)的 Spring 框架在 Java 中构建一个银行应用程序,但我听说它不安全。那么如何在 Java 中使 SMTP 安全? SSL 层和/或 HTTPS 连接是否足够?请帮忙。

谢谢。

【问题讨论】:

    标签: java security spring-security smtp


    【解决方案1】:

    您需要对您的 SMTP 服务器进行配置更改,以便服务器仅中继来自特定 ID 的邮件而忽略其他 ID,而不是在您的 Java 应用程序中确保 SMTP 安全。

    【讨论】:

      【解决方案2】:

      显然你可以在 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="yourAccount@gmail.com"/>
      <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="yourAccount@gmail.com" />
      <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("yourAccount@gmail.com");
      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;
      }
      
      } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-18
        • 2018-04-23
        • 2012-04-27
        • 2018-10-09
        • 1970-01-01
        • 2015-11-20
        • 1970-01-01
        相关资源
        最近更新 更多