import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.mail.Address;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
import org.mxchange.jcontacts.contact.Contact;
import org.mxchange.jcontacts.contact.ContactUtils;
import org.mxchange.jcoreee.database.BaseDatabaseBean;
/**
* Constructor with queue factory JNDI and queue JNDI names
* <p>
- * @param factoryJndi JNDI name for queue factory
- * @param queueJndi JNDI name for email queue
+ * @param factoryJndi JNDI name for queue factory
+ * @param queueJndi JNDI name for email queue
*/
protected BaseAddressbookDatabaseBean (final String factoryJndi, final String queueJndi) {
// Call super constructor
* <p>
* @param subjectLine Subject line
* @param templateName Template name
- * @param emailAddress Recipient's email address
* @param user User instance
* @param baseUrl Base URL
* @param randomPassword A randomly-generated password or NULL if user had
* to enter it.
*/
- protected void sendEmail (final String subjectLine, final String templateName, final Address emailAddress, final User user, final String baseUrl, final String randomPassword) {
+ protected void sendEmail (final String subjectLine, final String templateName, final User user, final String baseUrl, final String randomPassword) {
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("sendEmail: subjectLine={0},templateName={1},emailAddress={2},user={3},baseUrl={4} - CALLED!", subjectLine, templateName, emailAddress, user, baseUrl)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("sendEmail: subjectLine={0},templateName={1},user={2},baseUrl={3} - CALLED!", subjectLine, templateName, user, baseUrl)); //NOI18N
// All should be set
if (null == subjectLine) {
} else if (templateName.isEmpty()) {
// No template name
throw new IllegalArgumentException("templateName is empty"); //NOI18N
- } else if (null == emailAddress) {
- // Throw NPE
- throw new NullPointerException("emailAddress is null"); //NOI18N
} else if (null == user) {
// Throw NPE
throw new NullPointerException("user is null"); //NOI18N
throw new NullPointerException("this.session is not set. Have you forgotten to call super(String, String) and called only super() ?"); //NOI18N
}
- // Prepare mail wrapper
- WrapableEmailDelivery emailWrapper = new EmailDeliveryWrapper();
-
// Set all values
Properties variables = UserUtils.getAllUserFields(user);
variables.put("randomPassword", randomPassword); //NOI18N
}
- // Set all
+ // Init addresss
+ Address recipientAddress;
+
+ try {
+ // Create email address and set
+ recipientAddress = new InternetAddress(user.getUserContact().getContactEmailAddress());
+ } catch (final AddressException ex) {
+ // Throw again
+ throw new EJBException(ex);
+ }
+
+ // Prepare mail wrapper
// @TODO Language from message bundle
- emailWrapper.setRecipient(emailAddress);
- emailWrapper.setLocale(user.getUserLocale());
- emailWrapper.setSubjectLine(subjectLine);
- emailWrapper.setTemplateName(templateName);
- emailWrapper.setTemplateVariables(variables);
+ WrapableEmailDelivery emailWrapper = new EmailDeliveryWrapper(recipientAddress, subjectLine, templateName, variables, user.getUserLocale());
try {
// Send out email change