/*******************************************************************************
* Copyright (c) 2015 Development Gateway, Inc and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the MIT License (MIT)
* which accompanies this distribution, and is available at
* https://opensource.org/licenses/MIT
*
* Contributors:
* Development Gateway - initial API and implementation
*******************************************************************************/
package org.devgateway.toolkit.forms.service;
import org.devgateway.toolkit.persistence.dao.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Component;
/**
* Service to send emails to users to validate email addresses or reset
* passwords
*
* @author mpostelnicu
*
*/
@Component
public class SendEmailService {
@Autowired
private JavaMailSenderImpl javaMailSenderImpl;
private SimpleMailMessage templateMessage;
public SimpleMailMessage getTemplateMessage() {
return templateMessage;
}
public void setTemplateMessage(final SimpleMailMessage templateMessage) {
this.templateMessage = templateMessage;
}
/**
* Send a reset password email. This is UNSAFE because passwords are sent in
* clear text. Nevertheless some customers will ask for these emails to be
* sent, so ...
*
* @param person
* @param newPassword
*/
public void sendEmailResetPassword(final Person person, final String newPassword) {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setTo(person.getEmail());
msg.setFrom("support@developmentgateway.org");
msg.setSubject("Recover your password");
msg.setText("Dear " + person.getFirstName() + " " + person.getLastName() + ",\n\n"
+ "These are your new login credentials for DGToolkit.\n\n" + "Username: " + person.getUsername() + "\n"
+ "Password: " + newPassword + "\n\n"
+ "At login, you will be prompted to change your password to one of your choice.\n\n" + "Thank you,\n"
+ "DG Team");
try {
javaMailSenderImpl.send(msg);
} catch (MailException e) {
e.printStackTrace();
}
}
}