导包
<!--邮箱--> <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" ) }