Apache camel aws-ses - 无法动态设置电子邮件地址

时间:2014-05-30 16:10:54

标签: java spring amazon-web-services apache-camel

我正在尝试使用Apache Camel aws-ses发送电子邮件。

当我将转换为地址时,这很正常,但是当使用camel标头值设置地址时,我收到以下错误。

  

AmazonServiceException:状态代码:400,AWS服务:AmazonSimpleEmailService,AWS请求ID:24a14170-e812-11e3-86b1-4d4202db06aa,AWS错误代码:InvalidParameterValue,AWS错误消息:缺少最终'@domain'

这是我的骆驼路线:

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route customId="true" id="timerToLog">
    <from uri="cxfrs:bean:rsServer"/>
    <convertBodyTo type="com.domain.PasswordResetMessage"/>
    <log message="The message contains ${body}"/>
    <setHeader headerName="Comments">
        <simple>${body.email}</simple>
    </setHeader>
    <log message="The message header contains ${header.usersEmail}"/>
    <to uri="velocity:Welcome.vm"/>
    <setHeader headerName="CamelAwsSesHtmlEmail">
        <constant>true</constant>
    </setHeader>
    <log message="Just before sending to AWS, the message header contains ${header.usersEmail}"/>
    <to uri="aws-ses://info@domain.com?accessKey=ACCESSKEY&amp;secretKey=itsASecret&amp;subject=Testing&amp;to=${header.usersEmail}"/>
    <setBody>
        <constant>EMAIL SENT with AWS SES ID ${header.CamelAwsSesMessageId}</constant>
    </setBody>
    <log message="And at the end, the header contains ${header.usersEmail}"/>

有谁知道解决这个问题的方法或方法?

1 个答案:

答案 0 :(得分:0)

您可能遇到的问题是<to>没有替换您的uri的动态部分。您可能需要按照此camel FAQ使用收件人列表EIP。

根据常见问题解答,您可以尝试这样的事情(未经测试,您可能需要稍微调整一下?)

<recipientList>
     <simple>aws-ses://info@domain.com?accessKey=ACCESSKEY&amp;secretKey=itsASecret&amp;subject=Testing&amp;to=${header.usersEmail}</simple>
 </recipientList>