2017-11-06 2 views
-1

Ich brauche eine Bohne mit dieser Struktur zu schaffen:Spring-Bean für das Senden von E-Mail

@Bean 
public JavaMailSender getSender() { 
    JavaMailSender jms = new JavaMailSenderImpl(); 

    // here I need somehow to set up to object sender's email, password, subject, port ... 

    return jms; 
} 

Wenn ich die Bohne aus dem Kontext zu bekommen, ich brauche das Objekt eingerichtet mit allen Eigenschaften, außer Körpergehalt haben, die Ich werde einstellen. Ist das möglich und wie wäre es?

+1

Ersetzen Sie Ihren Kommentar durch tatsächlichen Code zu tun, was Sie wollen? –

Antwort

0

Die Schnittstelle JavaMailSender von Spring ist nicht verpflichtet, die Implementierung Host-, Port- und andere SMTP-Informationen bereitzustellen. Jedoch stellt eine der implementing classJavaMailSenderImpl diese Methoden bereit.

Alles, was Sie tun müssen, ist den Typ der Variablen jms zu JavaMailSenderImpl zu ändern, rufen Sie die Setter und dann zurück.

@Bean 
public JavaMailSender getJavaMailSender() { 
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); 
    mailSender.setHost("smtp.gmail.com"); 
    mailSender.setPort(587); 

    mailSender.setUsername("[email protected]"); 
    mailSender.setPassword("password"); 

    Properties props = mailSender.getJavaMailProperties(); 
    props.put("mail.transport.protocol", "smtp"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.debug", "true"); 

    return (JavaMailSender)mailSender; 
} 
Verwandte Themen