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)
    
    }
    
  • 相关阅读:
    remote: You are not allowed to push code to this project
    Ubuntu 查看本机的ip
    git跟踪远程分支,查看本地分支追踪和远程分支的关系
    edgedb 基本试用
    influxdb 全家桶运行
    Introducing Outflux: a smart way out of InfluxDB
    使用outflux 导入influxdb 的数据到timescaledb
    edgedb 强大的对象关系数据库
    Announcing the Operate Preview Release: Monitoring and Managing Cross-Microservice Workflows
    goaccess iis w3c 自定义log 格式参考
  • 原文地址:https://www.cnblogs.com/soclear/p/15678008.html
Copyright © 2011-2022 走看看