zoukankan      html  css  js  c++  java
  • kotlin发邮件

    1. 依赖

    dependencies{
        // https://mvnrepository.com/artifact/javax.mail/mail
        implementation("javax.mail:mail:1.5.0-b01")
    }
    

    2. 实现

    import java.util.*
    import javax.activation.DataHandler
    import javax.activation.FileDataSource
    import javax.mail.*
    import javax.mail.internet.InternetAddress
    import javax.mail.internet.MimeBodyPart
    import javax.mail.internet.MimeMessage
    import javax.mail.internet.MimeMultipart
    
    fun main() {
        val account = "你的账号@qq.com"
        val password = "填邮箱密码或key"
        val personal = "发信使用的昵称"
        val to = "接收账号@qq.com"
        val props = mapOf(
    // 认证
            "mail.smtp.auth" to "true",
    // smtp服务器
            "mail.smtp.host" to "smtp.qq.com",
    // smtp端口
            "mail.smtp.port" to "587",
        )
        val subject = "主题"
        val text = "内容"
        val html= "<h5>这是HTML</h5>"
        val filePath1 = """D:\图片\aaa.jpg"""
        val filePath2 = """D:\图片\0.png"""
        val filename = "绝命响应.png"
    
        val properties = Properties().apply { putAll(props) }
    
        val authenticator = object : Authenticator() {
            override fun getPasswordAuthentication(): PasswordAuthentication {
                return PasswordAuthentication(account, password)
            }
        }
    
        val mailSession = Session.getInstance(properties, authenticator)
    
        val textMessage = MimeMessage(mailSession).apply {
            setFrom(InternetAddress(account, personal, "UTF-8"))
            setRecipient(Message.RecipientType.TO, InternetAddress(to))
            setSubject(subject)
    
            setText(text)
        }
    
        val htmlMessage = MimeMessage(mailSession).apply {
            setFrom(InternetAddress(account, personal, "UTF-8"))
            setRecipient(Message.RecipientType.TO, InternetAddress(to))
            setSubject(subject)
    
            setContent(html, "text/html")
        }
    
        val multipartMessage = MimeMessage(mailSession).apply {
            setFrom(InternetAddress(account, personal, "UTF-8"))
            setRecipient(Message.RecipientType.TO, InternetAddress(to))
            setSubject(subject)
    
            val multipart = MimeMultipart().apply {
                addBodyPart(MimeBodyPart().apply {
                    setContent(html, "text/html")
                })
    // 若setContent设置为HTML,则前后都无法显示setText中内容
    //            addBodyPart(MimeBodyPart().apply { setText("this is a text") })
    
                addBodyPart(MimeBodyPart().apply { attachFile(filePath1) })
    
                addBodyPart(MimeBodyPart().apply {
                    val source=FileDataSource(filePath2)
                    dataHandler = DataHandler(source)
                    fileName=filename
                })
            }
    
            setContent(multipart)
        }
    
    
    //    Transport.send(textMessage)
    //    Transport.send(htmlMessage)
        Transport.send(multipartMessage)
    
    }
    
  • 相关阅读:
    spark学习进度03(入门案例、sparkshell本地文件读取,hdfs读取、本地运行、提交运行)
    spark学习进度02(集群搭建——第一个案例)
    spark学习进度01(安装环境搭建集群搭建)
    03 | 系统设计目标(一):如何提升系统性能?
    02 | 架构分层:我们为什么一定要这么做?
    01 | 高并发系统:它的通用设计方法是什么?
    24 | MySQL是怎么保证主备一致的?
    23 | MySQL是怎么保证数据不丢的?
    20 | 幻读是什么,幻读有什么问题?
    哇呀呀呀
  • 原文地址:https://www.cnblogs.com/soclear/p/15678008.html
Copyright © 2011-2022 走看看