【问题标题】:How to attach a file in body of email using spring integration如何使用弹簧集成在电子邮件正文中附加文件
【发布时间】:2012-10-02 13:23:40
【问题描述】:

我有一种情况,我需要在电子邮件正文中而不是在标题中附加文件。例如,在 Microsoft Outlook 中,如果消息类型设置为富文本,则可以将文件作为附件拖放到电子邮件正文中。我如何使用 Spring Integration MessageBuilder 做到这一点?到目前为止,这是我用来发送附件,但文件附加到邮件的标题而不是正文。

Message<?> msg = MessageBuilder.withPayload("")
.setHeader(MailHeaders.SUBJECT, subject )
.setHeader(MailHeaders.ATTACHMENT_FILENAME, args[0].toString())
.build();

如果有人给我代码示例会很有帮助!提前致谢

【问题讨论】:

    标签: spring email integration jakarta-mail


    【解决方案1】:

    您的代码显示您忽略了消息本身的一个关键部分,payload

    1. 使用JavaMailSender 连接您的出站消息适配器(您可能已经拥有)
    2. 使用您连接的org.springframework.mail.javamail.JavaMailSenderorg.springframework.mail.javamail.MimeMessageHelper 构造一个常规MimeMessage,如

       public void sendEmail(){
       MimeMessage message = mailSender.createMimeMessage(); //mailSender is an instance of             JavaMailSender from 1.
      try{
      MimeMessageHelper helper = new MimeMessageHelper(message,true);
      //set the fields
      helper.setFrom("J'onn Doe");
      helper.setTo("SpamRecce");
      helper.setSubject("")
      helper.setText("Text goes here")
      //load attachment file using spring's help. Basic interface is called a Resource and there       are many implementations. Here, I've used the ClassPathResource which means your attachment file must be in your classpath
      ClassPathResource theAttachment = new ClassPathResource("My File.Doc");
      helper.addAttachment("Add the desired filename here.doc",theAttachment);
          }
      catch(MessagingException me){
      Logger.getAnonymousLogger.info("Something bad happened!);
      me.printStacktrace();
           }
      mailSender.send(message);
       }
      

    我不知道您的实现细节,但我认为发送电子邮件的端点应该是终止端点,即可以直接从该端点发送电子邮件,您不需要发送到另一个通道。

    但是,如果您仍需要将消息刷新到另一个通道,则需要重写您要阅读的代码:

         Message<MimeMessage> msg = MessageBuilder.withPayload(message)
              .setHeader(MailHeaders.SUBJECT, subject )
              .setHeader(MailHeaders.ATTACHMENT_FILENAME, args[0].toString())
              .build();
    

    【讨论】:

      猜你喜欢
      • 2019-12-31
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      相关资源
      最近更新 更多