关于javamail在linux服务器上发送乱码的解决方法,搜了N多资料

本文提供了一个使用Java发送邮件的示例代码,包括配置SMTP服务器、设置邮件内容及主题等关键步骤。通过此代码,读者可以了解到如何利用Java实现基本的邮件发送功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不写那么多了,直接把源码放上来吧


public static void send(Email email) {
try {

Properties p = new Properties(); // Properties p =
// System.getProperties();
p.put("mail.smtp.auth", "true");
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.host", "你的邮件服务器");
p.put("mail.smtp.port", "端口");
// 建立会话
Session session = Session.getInstance(p);
Message msg = new MimeMessage(session); // 建立信息

msg.setFrom(new InternetAddress("发件人邮箱")); // 发件人

String toList = getMailList(email.getTo());//收件人列表
new InternetAddress();
InternetAddress[] iaToList = InternetAddress.parse(toList);

msg.setRecipients(Message.RecipientType.TO, iaToList); // 收件人

msg.setSentDate(new Date()); // 发送日期
BASE64Encoder enc = new BASE64Encoder();
//--------------------以下是重点内容-------------------
String subject = new String(email.getHead().getBytes("GB18030"),Charset.defaultCharset());
msg.setSubject("=?GB18030?B?" + enc.encode(subject.getBytes()) + "?="); // 邮件主题
msg.setContent(email.getContent(), "text/html;charset=GB18030");// 邮件内容

//--------------------结束--------------------------
// 邮件服务器进行验证
Transport tran = session.getTransport("smtp");
tran.connect("邮件服务器地址", "用户名", "密码");

tran.sendMessage(msg, msg.getAllRecipients()); // 发送
//System.out.println("邮件发送成功");
} catch (Exception e) {
e.printStackTrace();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值