Code Snippet

Just another Code Snippet site

[Java] Send mail using Spring and JavaMailSender

Java code :

    @Autowired
    private JavaMailSender mailSender;

    public void sendMail(final String recipient, final String subject, final String content,
            final File... attachments) {
        LOGGER.info("sendMail({})", recipient);

        MimeMessagePreparator preparator = new MimeMessagePreparator() {
            public void prepare(MimeMessage mimeMessage) throws Exception {
                LOGGER.debug("<To> " + recipient);
                LOGGER.debug("<Subject> " + subject);

                MimeMessageHelper mimeHelper = new MimeMessageHelper(mimeMessage, true);
                mimeHelper.addTo(recipient);
                mimeHelper.setSubject(subject);
                mimeHelper.setFrom("noreply@MailSender.com");
                mimeHelper.setReplyTo("noreply@MailSender.com");
                mimeHelper.setText(content.toString(), true);
                for (File attachment : attachments) {
                    LOGGER.debug("<Attachment> : " + attachment.getName());
                    mimeHelper.addAttachment(attachment.getName(), attachment);
                }
            }
        };

        mailSender.send(preparator);
    }

Spring config (for Gmail) :

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.gmail.com"/>
        <property name="port" value="587"/>
        <property name="username" value="mailsender@gmail.com"/>
        <property name="password" value="password"/>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.transport.protocol">smtp</prop>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
                <prop key="mail.debug">true</prop>
                <prop key="mail.smtp.quitwait">false</prop>
            </props>
        </property>
    </bean>

pom.xml :

	<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>XXX</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>6.0</version>
        </dependency>
	</dependencies>

,


Comments are currently closed.