All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.mail.cos.CosMailSenderImpl Maven / Gradle / Ivy

There is a newer version: 5.3.34
Show newest version
/*
 * Copyright 2002-2005 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.mail.cos;

import java.io.IOException;
import java.io.PrintStream;
import java.util.HashMap;
import java.util.Map;

import com.oreilly.servlet.MailMessage;

import org.springframework.mail.MailException;
import org.springframework.mail.MailParseException;
import org.springframework.mail.MailSendException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

/**
 * Simple implementation of SMTP mail sending on top of Jason Hunter's
 * MailMessage class that's included in
 * COS (com.oreilly.servlet).
 *
 * 

Does not support any richer functionality than MailSender and * SimpleMailMessage, therefore there's no optional richer interface like * the JavaMailSender interface for the JavaMailSenderImpl implementation. * *

Does not support "replyTo" and "sentDate" fields; will consequently * throw an exception when encountering either of those. * * @author Juergen Hoeller * @since 09.10.2003 * @see com.oreilly.servlet.MailMessage * @see org.springframework.mail.javamail.JavaMailSenderImpl */ public class CosMailSenderImpl implements MailSender { private String host; /** * Set the SMTP mail host. */ public void setHost(String host) { this.host = host; } public void send(SimpleMailMessage simpleMessage) throws MailException { send(new SimpleMailMessage[] {simpleMessage}); } public void send(SimpleMailMessage[] simpleMessages) throws MailException { Map failedMessages = new HashMap(); for (int i = 0; i < simpleMessages.length; i++) { SimpleMailMessage simpleMessage = simpleMessages[i]; if (simpleMessage.getReplyTo() != null) { throw new MailParseException("CosMailSenderImpl does not support replyTo field - " + simpleMessage); } if (simpleMessage.getSentDate() != null) { throw new MailParseException("CosMailSenderImpl does not support sentDate field - " + simpleMessage); } try { MailMessage cosMessage = new MailMessage(this.host); cosMessage.from(simpleMessage.getFrom()); if (simpleMessage.getTo() != null) { for (int j = 0; j < simpleMessage.getTo().length; j++) { cosMessage.to(simpleMessage.getTo()[j]); } } if (simpleMessage.getCc() != null) { for (int j = 0; j < simpleMessage.getCc().length; j++) { cosMessage.cc(simpleMessage.getCc()[j]); } } if (simpleMessage.getBcc() != null) { for (int j = 0; j < simpleMessage.getBcc().length; j++) { cosMessage.bcc(simpleMessage.getBcc()[j]); } } cosMessage.setSubject(simpleMessage.getSubject()); PrintStream textStream = cosMessage.getPrintStream(); textStream.print(simpleMessage.getText()); cosMessage.sendAndClose(); } catch (IOException ex) { failedMessages.put(simpleMessage, ex); } } if (!failedMessages.isEmpty()) { throw new MailSendException(failedMessages); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy