我正在开发一个遗留应用程序,在这个应用程序中,我必须在电子邮件正文和附件(Excel、xls文件)中发送一封带有特殊字符(utf-8)的电子邮件。
我在这方面做了很多尝试。特殊字符在附件xls文件中没有正确显示,但在电子邮件正文中显示正确。
我正在使用的代码片段如下所示。
private void initalizeMailSession()
{
java.util.Properties props = new java.util.Properties();
props.setProperty("mail.smtp.host", Properties.MAIL_SMTP_HOST);
mailSession = Session.getInstance(props);
}
public void sendMailUtf8Attachment() throws Exception
{
// Send mail for current object
if(mailSession==null)
initalizeMailSession();
MimeMessage mailMsg = new MimeMessage(mailSession);
InternetAddress recipient=null;
if(toList==null&&ccList==null&&bccList==null)
{
throw new Exception("No Recipents Found");
}
if(toList!=null)
{
for(String toAddress: toList)
{
recipient=new InternetAddress(toAddress);
mailMsg.addRecipient(javax.mail.Message.RecipientType.TO, recipient);
}
}
if(sender==null)
throw new Exception("Sender not found");
InternetAddress sender=new InternetAddress(this.sender);
mailMsg.setFrom(sender);
mailMsg.setSubject(subject);
MimeMultipart mult = new MimeMultipart();
MimeBodyPart messagePart = new MimeBodyPart();
messagePart.setContent(mailMessage, mailType);
mult.addBodyPart(messagePart);
MimeBodyPart filePart = new MimeBodyPart();
filePart.setText(message, "UTF-8"); // message string is having html code with Chinese characters in it.
filePart.setDisposition(MimeBodyPart.ATTACHMENT);
filePart.setFileName("attachmen.xls");
filePart.setHeader("Content-Transfer-Encoding", "base64");
filePart.setHeader("Content-Type", HTML);
mult.addBodyPart(filePart);
mailMsg.setContent(mult);
Transport.send(mailMsg);
System.out.println("Mail send..");
}
具有特殊字符的邮件正文:
请帮助我如何做到这一点,以正确显示附件中的特殊字符。
尝试此项目-
问题内容: 我有一个这样的字符串: 我想以正确的UTF-8编码获取文件名。在Maven Central的某处是否有一个库方法可以为我执行此解码,还是我需要测试模式并手动解码base64? 问题答案: 在MIME术语中,那些编码的块称为编码字。看看在JavaMail的。该方法将解码字符串中的所有编码词。 你可以用
问题内容: 请问如何发送utf8电子邮件? 输出量 问题答案: 您只需要在调用中添加参数即可(默认情况下假设)。 例如:
我正在使用Meteor并尝试将pdf附加到电子邮件中。我目前将pdf作为base 64字符串返回给客户端,该字符串在新窗口中打开并显示pdf。我想以pdf的形式将base 64附加为电子邮件附件。 邮寄服务器方法: 将base64字符串返回给客户端的代码段: 当前显示pdf的客户端代码: 为了将base64字符串作为pdf附件附加,我应该做些什么?我似乎无法获得流星邮件发送的数据,因为我收到了错误
问题内容: HTML电子邮件可以使用图像附件作为标记的来源吗? 假设我正在发送包含每个电子邮件特定图像的电子邮件-它们作为电子邮件的附件发送-电子邮件中的HTML正文可以使用这些图像吗?我的猜测是 不会 ,但是是否有任何 破解 或变通办法可以使它正常工作? 谢谢, 问题答案: 无需黑客。使用URI方案
问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送
使用Jenkins1.499和版本2.25的Jenkins电子邮件扩展插件。当电子邮件被发送时,电子邮件的内容显示为通知的附件,而不是在电子邮件的正文中。事实上,邮件正文是空白的。更改电子邮件的内容类型没有任何效果。我们使用Exchange/Outlook,这可能是问题所在吗?有什么想法可以在邮件的正文中获得邮件的内容吗?