implementation group: 'javax.mail', name: 'mail', version: '1.4.7'
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
public class EmailSender {
public static void main(String[] args) {
// 配置SMTP服务器和账号信息
String host = "smtp.qq.com";
int port = 465;
String username = "your_email@qq.com";
String password = "your_password";
// 创建Properties对象,并设置SMTP服务器信息
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable", "true");
// 创建Session对象,需要提供认证信息
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// 创建MimeMessage对象
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(username));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("recipient@example.com"));
message.setSubject("Email Subject");
// 创建邮件正文部分
MimeBodyPart textPart = new MimeBodyPart();
textPart.setText("Email content");
// 创建附件部分
MimeBodyPart attachmentPart = new MimeBodyPart();
String attachmentFileName = MimeUtility.encodeText(attachment.getName()); // 编码附件名称,解决中文乱码问题
DataSource source = new FileDataSource(attachment);
attachmentPart.setDataHandler(new DataHandler(source));
attachmentPart.setFileName(attachmentFileName);
// 创建多部分邮件
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(textPart);
multipart.addBodyPart(attachmentPart);
// 将多部分邮件设置为消息内容
message.setContent(multipart);
// 发送邮件
Transport.send(message);
System.out.println("Email sent successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
浙公网安备 33010602011771号