java mail 邮箱发送_Java Mail 发送邮件

什么是 SMTP 协议

SMTP或简单的邮件传输协议,是一种将电子邮件从一台服务器发送到另一台服务器的快速简便的方法。通过 SendGrid 等第三方服务商提供的SMTP服务,我们可以通过第三方服务器而不是客户端或服务器来传递电子邮件。

要了解 SMTP 协议, 我们使用Telnet发送测试SMTP电子邮件

$ telnet smtp.sendgrid.net 25

Trying 169.45.113.201...

Connected to smtp.sendgrid.net.

Escape character is '^]'.

220 SG ESMTP service ready at ismtpd0009p1sjc2.sendgrid.net

AUTH LOGIN #成功连接到SendGrid后,通过键入登录到服务器AUTH LOGIN。

334 VXNlcm5hbWU6 #邮件服务器以回应334 VXNlcm5hbWU6,即对您的用户名进行Base64编码的请求。

YXBpa2V5 #apikey即用户名的加密

334 UGFzc3dvcmQ6 #此响应是对您的密码(您的API密钥)的Base64编码请求。

??????????????? #在下一行中输入您的Base64转换后的API密钥作为密码。

235 Authentication successful #邮件服务器以响应235 Authentication successful。到此为止表示您通过选定端口到smtp.sendgrid.net的连接已打开,并且您的API密钥有效。

通过SMTP协议, 编写客户端向邮件服务器提交发送邮件请求

package mail

import javax.mail.internet.MimeMessage

import java.util.Properties

import javax.mail.Session

import javax.mail.Message

import javax.mail.Transport

import java.util.Date

import javax.mail.MessagingException

fun main() {

val props = Properties();

// SMTP 邮件服务器名称

props.put("mail.smtp.host", "smtp.139.com");

//props.put("mail.smtp.port", "25");

val session = Session.getInstance(props, null);

try {

val msg = MimeMessage(session);

// 发件人

val me = "me@139.com"

msg.setFrom(me);

// 收件人

msg.setRecipients(Message.RecipientType.TO, "test@qq.com")

msg.setSubject("subject")

// 发送日期

msg.setSentDate(Date())

// 正文

msg.setText("content");

// SMTP 邮件服务器认证账号&密码

Transport.send(msg, me, "139pswd");

println("发送OK")

} catch (e: Throwable) {

println("发送失败 ${ e.message }");

e.printStackTrace()

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值