导包
<!--邮箱-->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
package com.cloudinward.bhApply.config import com.sun.net.ssl.internal.ssl.Provider import java.security.Security import javax.activation.DataHandler import javax.activation.FileDataSource import javax.mail.* import javax.mail.internet.* object EmailUtils { private const val ALIDM_SMTP_HOST = "smtp.qiye.aliyun.com" private const val ALIDM_SMTP_PORT = "25" // 或80 /** * @param sendAddress 发件人地址 * @param sendPassword 发件人密码 * @param host 协议 * @param port端口 * @param subject 标题 * @param content 内容 * @param filePath 附件地址 * @param CC 抄送人 * @throws Exception * @throws AddressException */ fun sendMail( subject: String?, content: String?, internetAddress: String?, filePath: String?=null ) { //设置SSL连接、邮件环境 Security.addProvider(Provider()) val SSL_FACTORY = "javax.net.ssl.SSLSocketFactory" val props = System.getProperties() props.setProperty("mail.smtp.host", ALIDM_SMTP_HOST) props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY) props.setProperty("mail.smtp.socketFactory.fallback", "false") props.setProperty("mail.smtp.port", ALIDM_SMTP_PORT) //设置端口 props.setProperty("mail.debug", "true") //启用调试 props.setProperty("mail.smtp.socketFactory.port", "465") props.setProperty("mail.smtp.auth", "true") //建立邮件会话 val session = Session.getDefaultInstance(props, object : Authenticator() { //身份认证 override fun getPasswordAuthentication(): PasswordAuthentication? { return PasswordAuthentication("ipaihotex@paiho.cn", "2Y5NpGBBy9iE1") //发件人账号、密码 } }) //建立邮件对象 val message = MimeMessage(session) //设置邮件的发件人、收件人、主题 //附带发件人名字 // message.setFrom(new InternetAddress("from_mail@qq.com", "optional-personal")); message.setFrom(InternetAddress("ipaihotex@paiho.cn")) //发件人账号 message.setRecipients(Message.RecipientType.TO, internetAddress) //收件人账号 //标题 message.subject = subject //邮件标题 //内容 val multipart: Multipart = MimeMultipart() val contentPart: BodyPart = MimeBodyPart() contentPart.setContent(content, "text/html;charset=utf-8") //邮件内容 multipart.addBodyPart(contentPart) //附件部分 if (!filePath.isNullOrBlank()) { val attachPart: BodyPart = MimeBodyPart() val fileDataSource = FileDataSource(filePath) //附件地址 D:/题库上传模板v1.xlsx attachPart.dataHandler = DataHandler(fileDataSource) attachPart.fileName = MimeUtility.encodeText(fileDataSource.getName()) multipart.addBodyPart(attachPart) } message.setContent(multipart) //抄送地址 // if (!CC.isNullOrBlank()) { // val internetAddressCC: Array<InternetAddress> = InternetAddress().parse(CC) // message.setRecipients(Message.RecipientType.CC, internetAddressCC) // } //发送邮件 Transport.send(message) } } fun main() { EmailUtils.sendMail( "subject test", "<H1>AAAwerewrwfdsfdsfA</H1>", "853810169@qq.com" ) }
Java邮件发送配置与实现
本文详细介绍如何在Java中配置并使用阿里云SMTP服务发送带有HTML内容和附件的电子邮件,包括必要的依赖导入、SSL连接设置及邮件内容的构建。
1718

被折叠的 条评论
为什么被折叠?



