Rom*_*omi 8 java email mime-message
发送电子邮件的代码如下:
MimeMessage msg = new MimeMessage(session);
msg.setSubject("subject", "UTF-8"); // here you specify your subject encoding
msg.setContent("yourBody", "text/plain; charset=utf-8");
msg.setFrom("senderAddress");
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(address));
Transport.send(msg);
Run Code Online (Sandbox Code Playgroud)
我的探针是因为我在utf-8中编码了主题,我如何编码收件人地址,即. new InternetAddress(address)
JMe*_*nik 14
JavaMail的MimeMessage使用InternetAddress:
此类表示使用RFC822语法的Internet电子邮件地址.典型的地址语法格式为"user@host.domain"或"Personal Name <user@host.domain>".
RFC822格式说:
请注意,RFC 822将字符库限制为ASCII.在实践中,其他字符(例如ä或é)通常在用于注释目的(和注释)的引用字符串内工作,但它们不能在正确的地址中使用.
InternetAddress使用个人名称:
如果名称包含非US-ASCII字符,则将根据RFC 2047使用指定的字符集对名称进行编码.如果名称仅包含US-ASCII字符,则不进行编码,并按名称使用名称.
要设置编码的字符集,有一个InternetAddress#constructor.看来源:
public InternetAddress(String address, String personal, String charset)
throws UnsupportedEncodingException {
this.address = address;
setPersonal(personal, charset);
}
Run Code Online (Sandbox Code Playgroud)
它只是调用setPersonal(..),因此选择最方便的方式.
要查找字符集,请使用Charset.forName().
| 归档时间: |
|
| 查看次数: |
5762 次 |
| 最近记录: |