2010-11-21 58 views
1

我只想问如何设置一个简单的邮件服务器,并能够发送电子邮件。我使用Apache Tomcat 6.0作为我的本地主机服务器和Spring框架+ jsp。我对此很新颖。所以如果有人能给出一个很好的教程,这将会有很大的帮助。谢谢如何使用spring mvc和jsp配置邮件服务器?

+0

所以,你不必在一个所有(第三方)SMTP服务器和要承载您自己的SMTP服务器连同Web服务器? – BalusC 2010-11-21 15:50:20

+0

我还没决定。但我会用更容易的。 :) – randy 2010-11-21 15:52:14

回答

1

下面是如何得到弹簧配置。可能是applicationContext-mail.xml。其导入的applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autowire="byName"> 

default-autowire="byName"> 

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="${mail.host}" /> 
    <property name="port" value="${mail.port}" /> 
    <property name="username" value="${mail.username}" /> 
    <property name="password" value="${mail.password}" /> 
</bean> 


<bean id="freemarkerConfiguration" 
    class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean"> 
    <property name="templateLoaderPath" value="/WEB-INF/templates" /> 
</bean> 

<!-- KINDLY MAINTAIN ALPHABETICAL ORDER THIS LINE ONWARDS --> 
<bean id="notificationService" class="com.isavera.service.NotificationServiceImpl" 
    scope="prototype"> 
    <property name="mailSender" ref="mailSender" /> 
    <property name="freemarkerConfiguration" ref="freemarkerConfiguration" /> 
    <property name="freemarkerTemplate" value="accountInformation.ftl" /> 
    <property name="fromAddress" value="[email protected]" /> 
    <property name="subject" value="Your account information" /> 
</bean> 

下面是NotificationServiceImpl

public class NotificationServiceImpl implements NotificationService, Runnable { 
private boolean asynchronous = true; 

private JavaMailSender mailSender; 

private Configuration freemarkerConfiguration; 

private String freemarkerTemplate; 

private Map<String, Object> attributes; 

private String deliveryAddress; 

private String[] deliveryAddresses; 

private String fromAddress; 

private String subject; 

private SimpleMailMessage message; 

private MimeMessage mimeMessage; 

public void deliver() { 
    message = new SimpleMailMessage(); 

    if (getDeliveryAddresses() == null) { 
     message.setTo(getDeliveryAddress()); 
    } else { 
     message.setTo(getDeliveryAddresses()); 
    } 

    message.setSubject(subject); 
    message.setFrom(fromAddress); 

    // Merge the model into the template 
    final String result; 
    try { 

     result = FreeMarkerTemplateUtils.processTemplateIntoString(freemarkerConfiguration.getTemplate(appendApplicationName(freemarkerTemplate)), attributes); 
     message.setText(result); 
     if (asynchronous) { 
      Thread emailThread = new Thread(this); 
      emailThread.start(); 
     } else { 
      run(); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (TemplateException e) { 
     e.printStackTrace(); 
    } 
} 

}

相关问题