⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringtoemailmessage.java

📁 提供ESB 应用mule源代码 提供ESB 应用mule源代码
💻 JAVA
字号:
/* * $Id: StringToEmailMessage.java 13051 2008-10-10 21:10:48Z dfeist $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.transport.email.transformers;import org.mule.RegistryContext;import org.mule.api.MuleMessage;import org.mule.api.transformer.TransformerException;import org.mule.transformer.AbstractMessageAwareTransformer;import org.mule.transport.email.MailProperties;import org.mule.transport.email.MailUtils;import org.mule.transport.email.SmtpConnector;import org.mule.util.MapUtils;import org.mule.util.StringUtils;import org.mule.util.TemplateParser;import java.util.Calendar;import java.util.Iterator;import java.util.Map;import java.util.Properties;import javax.mail.Message;import javax.mail.internet.MimeMessage;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * <code>StringToEmailMessage</code> will convert a String to a JavaMail Message, * using the String as the contents. This implementation uses properties on the * transformer to determine the To: and Subject: fields. */public class StringToEmailMessage extends AbstractMessageAwareTransformer{    /**     * logger used by this class     */    private final Log logger = LogFactory.getLog(getClass());    private TemplateParser templateParser = TemplateParser.createMuleStyleParser();    public StringToEmailMessage()    {        this.registerSourceType(String.class);        this.setReturnClass(Message.class);    }    public Object transform(MuleMessage message, String outputEncoding) throws TransformerException    {        String endpointAddress = endpoint.getEndpointURI().getAddress();        SmtpConnector connector = (SmtpConnector) endpoint.getConnector();        String to = message.getStringProperty(MailProperties.TO_ADDRESSES_PROPERTY, endpointAddress);        String cc = message.getStringProperty(MailProperties.CC_ADDRESSES_PROPERTY,            connector.getCcAddresses());        String bcc = message.getStringProperty(MailProperties.BCC_ADDRESSES_PROPERTY,            connector.getBccAddresses());        String from = message.getStringProperty(MailProperties.FROM_ADDRESS_PROPERTY,            connector.getFromAddress());        String replyTo = message.getStringProperty(MailProperties.REPLY_TO_ADDRESSES_PROPERTY,            connector.getReplyToAddresses());        String subject = message.getStringProperty(MailProperties.SUBJECT_PROPERTY, connector.getSubject());        String contentType = message.getStringProperty(MailProperties.CONTENT_TYPE_PROPERTY,            connector.getContentType());        Properties headers = new Properties();        Properties customHeaders = connector.getCustomHeaders();        if (customHeaders != null && !customHeaders.isEmpty())        {            headers.putAll(customHeaders);        }        Properties otherHeaders = (Properties) message.getProperty(MailProperties.CUSTOM_HEADERS_MAP_PROPERTY);        if (otherHeaders != null && !otherHeaders.isEmpty())        {                //TODO Whats going on here?//                final MuleContext mc = context.getMuleContext();//                for (Iterator iterator = message.getPropertyNames().iterator(); iterator.hasNext();)//                {//                    String propertyKey = (String) iterator.next();//                    mc.getRegistry().registerObject(propertyKey, message.getProperty(propertyKey), mc);//                }                headers.putAll(templateParser.parse(new TemplateParser.TemplateCallback()                {                    public Object match(String token)                    {                        return RegistryContext.getRegistry().lookupObject(token);                    }                }, otherHeaders));        }        if (logger.isDebugEnabled())        {            StringBuffer buf = new StringBuffer();            buf.append("Constructing email using:\n");            buf.append("To: ").append(to);            buf.append("From: ").append(from);            buf.append("CC: ").append(cc);            buf.append("BCC: ").append(bcc);            buf.append("Subject: ").append(subject);            buf.append("ReplyTo: ").append(replyTo);            buf.append("Content type: ").append(contentType);            buf.append("Payload type: ").append(message.getPayload().getClass().getName());            buf.append("Custom Headers: ").append(MapUtils.toString(headers, false));            logger.debug(buf.toString());        }        try        {            Message email = new MimeMessage(((SmtpConnector) endpoint.getConnector()).getSessionDetails(endpoint).getSession());            email.setRecipients(Message.RecipientType.TO, MailUtils.stringToInternetAddresses(to));            // sent date            email.setSentDate(Calendar.getInstance().getTime());            if (StringUtils.isNotBlank(from))            {                email.setFrom(MailUtils.stringToInternetAddresses(from)[0]);            }            if (StringUtils.isNotBlank(cc))            {                email.setRecipients(Message.RecipientType.CC, MailUtils.stringToInternetAddresses(cc));            }            if (StringUtils.isNotBlank(bcc))            {                email.setRecipients(Message.RecipientType.BCC, MailUtils.stringToInternetAddresses(bcc));            }            if (StringUtils.isNotBlank(replyTo))            {                email.setReplyTo(MailUtils.stringToInternetAddresses(replyTo));            }            email.setSubject(subject);            for (Iterator iterator = headers.entrySet().iterator(); iterator.hasNext();)            {                Map.Entry entry = (Map.Entry) iterator.next();                email.setHeader(entry.getKey().toString(), entry.getValue().toString());            }            setContent(message.getPayload(), email, contentType, message);            return email;        }        catch (Exception e)        {            throw new TransformerException(this, e);        }    }    protected void setContent(Object payload, Message msg, String contentType, MuleMessage message)        throws Exception    {        msg.setContent(payload, contentType);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -