您的位置 首页 java

给心爱的她(他)用java发送一封邮件吧

随着我们学习java的深入,也渐渐发现了它的一些乐趣,比如发送邮件…(还有很多啊)

给心爱的她(他)用java发送一封邮件吧

还是老规矩,定义走起。

一、SMTP协议

SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组从原地址到目的地址传输邮件的规范,通过此来控制邮件的中转方式,用女朋友能听懂的话说就是帮助告诉邮件该去哪!而SMTP服务器就是遵循SMTP协议的发送邮件服务器。对云服务器大家或多或少都了解,可以把邮件服务器也理解成一种云服务器。

二、POP3协议

POP3是Post Office Protocol 3的简称,即邮局协议的第三个版本,规定了怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。而POP3服务器则是遵循POP3协议的接受邮件服务器。简单说就是接受邮件的。

三、发送邮件的心路历程

①、用户A的电子邮箱为:xx@qq.com,通过邮件客户端软件写好一封邮件,交到QQ的邮件服务器,这一步使用的协议是SMTP,对应图示的①;

②、QQ邮箱会根据用户A发送的邮件进行解析,也就是根据收件地址判断是否是自己管辖的账户,如果收件地址也是QQ邮箱,那么会直接存放到自己的存储空间。这里我们假设收件地址不是QQ邮箱,而是163邮箱,那么QQ邮箱就会将邮件转发到163邮箱服务器,转发使用的协议也是SMTP,对应图示的②;

③、163邮箱服务器接收到QQ邮箱转发过来的邮件,也会判断收件地址是否是自己,发现是自己的账户,那么就会将QQ邮箱转发过来的邮件存放到自己的内部存储空间,对应图示的③;

④、用户A将邮件发送了之后,就会通知用户B去指定的邮箱收取邮件。用户B会通过邮件客户端软件先向163邮箱服务器请求,要求收取自己的邮件,对应图示的④;

⑤、163邮箱服务器收到用户B的请求后,会从自己的存储空间中取出B未收取的邮件,对应图示⑤;

⑥、163邮箱服务器取出用户B未收取的邮件后,将邮件发给用户B,对应图示的⑥;最后三步用户B收取邮件的过程,使用的协议是POP3;

总结一下

使用SMTP(简单邮件传送协议)或ESMTP(扩展SMTP)来发送电子邮件,使用POP3(电子邮局协议3)或IMAP(因特网消息访问协议)来接收电子邮件。

给心爱的她(他)用java发送一封邮件吧

四、 QQ邮箱和网易邮箱的配置

1、qq

在登录QQ邮箱后台在”设置”=》账号中开启POP3/SMTP服务

给心爱的她(他)用java发送一封邮件吧

2、网易

请登录163邮箱,点击页面正上方的“ 设置 ”,再点击左侧上“ POP3/SMTP/IMAP ”,其中“开启SMTP服务”是系统默认勾选开启的。勾选图中另两个选项,点击确定,即可开启成功。不勾选图中两个选项,点击确定,可关闭成功。

五、代码演示(QQ邮箱)

现在随着代码来了解发送邮件吧!

public static void main(String [] args) throws GeneralSecurityException {

// 收件人电子邮箱,改成自己需要的

String to = “xxxxxxx@qq.com”;

// 发件人电子邮箱,改成自己需要的

String from = “xxxxxxxxx@qq.com”;

// 指定发送邮件的主机为 smtp.qq.com

String host = “smtp.qq.com”; //QQ 邮件服务器

// 获取系统属性

Properties properties = System.getProperties();

// 设置邮件服务器

properties.setProperty(“mail.smtp.host”, host);

properties.put(“mail.smtp.auth”, “true”);

MailSSLSocketFactory sf = new MailSSLSocketFactory();

sf.setTrustAllHosts(true);

properties.put(“mail.smtp.ssl.enable”, “true”);

properties.put(“mail.smtp.ssl.socketFactory”, sf);

// 获取默认session对象

Session session = Session.getDefaultInstance(properties,new Authenticator(){

@Override

public PasswordAuthentication getPasswordAuthentication()

{

return new PasswordAuthentication(“xxxxxx@qq.com”, “16位验证码在邮箱中获取”); //发件人邮件用户名、密码,密码从对应的邮箱中获取

}

});

try{

// 创建默认的 MimeMessage 对象

MimeMessage message = new MimeMessage(session);

// Set From: 头部头字段

message.setFrom(new InternetAddress(from));

// Set To: 头部头字段

message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

// Set Subject: 头部头字段

message.setSubject(“This is the Subject Line!”);

// 设置消息体

message.setText(“萌新你好 这里是太原理工大学云顶书院第四期java一组,李国瑞正在通过java发送邮件与您交流!”);

// 发送消息

Transport.send(message);

System.out.println(“Sent message successfully….from runoob.com”);

}catch (MessagingException mex) {

mex.printStackTrace();

}

文章来源:智云一二三科技

文章标题:给心爱的她(他)用java发送一封邮件吧

文章地址:https://www.zhihuclub.com/173171.shtml

关于作者: 智云科技

热门文章

网站地图