通过 SMTP 创建微软团队公告

问题描述

我正在使用 JavaMailSender 类通过 SMTP 协议向 Microsoft Teams 频道添加新消息。它工作正常,但我需要创建公告而不是认对话消息。有什么办法可以实现吗?

我正在使用 spring 框架和 JavaMailSenderImpl 类向团队发送消息。也许我应该添加一些标题或类似的东西来发送公告,而不是对话消息?

@requiredArgsConstructor
@Slf4j
public class DefaultTeamsService implements TeamsService{
    private final JavaMailSender mailSender;
    @Value("${app.mail.from}")
    private String from;

    @Override
    public void sendMessage(String to,String subject,String html) {
        try {
            MimeMessage message = formMessage(from,to,subject,html);
            mailSender.send(message);
        } catch (MessagingException e) {
            log.error("Failed to form message",e);
        }
    }

    private MimeMessage formMessage(String from,String to,String html) throws MessagingException {
        MimeMessage message = mailSender.createMimeMessage();
        message.setSubject("","utf-8");

        MimeMessageHelper helper = new MimeMessageHelper(message,true,"UTF-8");

        helper.setFrom(from);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(html,true);

        return message;
    }

This is how it shows now

This is how it should be

解决方法

我不确定如何像这样直接创建实际的“公告”类型,或者甚至可能,但至少支持有限的降价语法是一个很好的选择,因此有一些“标题”和其他格式可能有用的选项 - 有关更多信息,请参阅 here。另一种选择是查看使用 webhooks。创建机器人并使用主动消息传递和自适应卡片是另一种选择,但需要做更多工作。