2010-11-21 5 views
1

Ich möchte nur fragen, wie kann ich einen einfachen Mail-Server einrichten und in der Lage sein, eine E-Mail zu senden. Ich verwende Apache Tomcat 6.0 als mein Localhost-Server und Spring-Framework + Jsp auch. Ich bin ziemlich neu in diesem Bereich. Wenn also jemand ein nettes Tutorial geben kann, wird es eine große Hilfe sein. DankeWie konfiguriert man einen Mail-Server mit Feder mvc und Jsp?

+0

Also, Sie haben nicht eine (3rd party) SMTP-Server überhaupt und Sie möchten Ihre Gastgeber eigener SMTP Server zusammen mit Webserver? – BalusC

+0

bin noch nicht entschieden. aber ich werde mit dem leichteren gehen. :) – randy

Antwort

1

Unten ist, wie Sie die Federkonfiguration erhalten würden. wahrscheinlich applicationContext-mail.xml. Importieren Sie, dass in 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> 

Im Folgenden wird die 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(); 
    } 
} 

}