Java Jakarta Mail 不接受有关主题的表情符号

问题描述 投票:0回答:1

我正在尝试使用 gmail 帐户通过雅加达邮件发送警报,为此我想发送有关该主题的 🚨 表情符号。

Session session = Session.getInstance(properties, new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(usr, pass);
    }
});

try {
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("[email protected]"));

    Address[] toUser = InternetAddress
            .parse(toEmail);

    message.setRecipients(Message.RecipientType.TO, toUser);
    message.setSubject("\uD83D\uDEA8"+" This is an alert "+"\uD83D\uDEA8");
    message.setContent(messageText, "text/html; charset=utf-8");

    Transport.send(message);
}

我已经尝试了有关此问题的所有答案,但我收到了?每次我尝试通过 tomcat 服务器发送它时,使用 psvm 可以使用类似“\uD83D\uDEA8”+”的内容,这是一个警报“+”\uD83D\uDEA8”。

java email jakarta-mail
1个回答
0
投票

不要将 MimeMessage 向上转换为 Message。 MimeMessage 有一个方法

MimeMessage.setSubject(String subject, String charset)
它将字符集作为附加参数。

Session session = Session.getInstance(properties, new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(usr, pass);
    }
});

try {
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress("[email protected]"));

    Address[] toUser = InternetAddress
            .parse(toEmail);

    message.setRecipients(Message.RecipientType.TO, toUser);
    message.setSubject("\uD83D\uDEA8"+" This is an alert "+"\uD83D\uDEA8", "UTF-8");
    message.setContent(messageText, "text/html; charset=utf-8");

    Transport.send(message);
}
© www.soinside.com 2019 - 2024. All rights reserved.