栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现邮件传输(一)简单邮件的发送

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现邮件传输(一)简单邮件的发送

邮件传输的原理分析

做一个东西一定要分析原理,建立架构,再编写代码
在网络上实现邮件传输需要邮件服务器

假设有两个人,张三李四,他们有两台不一样的电脑,张三想给李四发一封邮件

中间有一个基站来帮助他们通信,通过网络传输

他们有两个真实的邮箱,不同的邮箱有自己的服务器

基站先把张三发出的邮件存到网易服务器里,服务器通过基站找到qq的服务器,放入

李四通过电脑访问qq服务器,从中取出信件

发送邮件:SMTP协议

接收邮件:POP3协议

服务器内部有一个POP3接收,还有一个SMTP发送,下面还有一个文件系统FileSystem,每个账户有一定的空间

注册一个账号相当于在文件系统中申请一个地址

JAVA实现过程

使用Java发送E-mail十分简单,但是首先你应该准备JavaMail API和Java Activation framework

得到两个jar包

  • mail.jar
  • activation.jar

    MainlDemo01
package com.lding;

import com.sun.mail.util.MailSSLSocketFactory;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.GeneralSecurityException;
import java.util.Properties;


public class MailDemo01 {
    public static void main(String[] args) throws GeneralSecurityException, MessagingException {
        Properties prop=new Properties();
        prop.setProperty("mail.host","smtp.qq.com");//设置qq邮件服务器
        prop.setProperty("mail.transport.protocol","smtp");//邮箱发送协议
        prop.setProperty("mail.smtp.auth","true");//需要验证用户名密码
        //关于qq邮箱,还要设置SSL加密,加上以下代码即可
        MailSSLSocketFactory sf=new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
       // prop.put("mail.smtp.ssl.enable","true");
        //prop.put("mail.smtp.ssl.socketFactory",sf);

        //使用JavaMail发送邮件的5个步骤
        //1、创建定义整个应用程序所需的环境信息的Session对象
        //QQ才有!其他邮箱不用
        Session session= Session.getDefaultInstance(prop, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("邮箱","验证码");
            }
        });
        session.setDebug(true);
        //2、通过session得到transport对象
        Transport ts=session.getTransport();
        //3、使用邮箱的用户名和授权码连上邮件服务器
        ts.connect("smtp.qq.com","邮箱","验证码");
        //4、创建邮件:写邮件
        //注意需要传递Session
        MimeMessage message=new MimeMessage(session);
        //指明邮件的发件人
        message.setFrom(new InternetAddress("邮箱"));
        //指明邮件的发件人,现在发件人和收件人是一样的,那就是自己给自己发
        message.setRecipient(Message.RecipientType.TO,new InternetAddress("邮箱"));
        //邮件的标题
        message.setSubject("你好世界!");
        //邮件的文本内容
        message.setContent("

你好啊!","text/html;charset=UTF-8"); //5、发送邮件 ts.sendMessage(message,message.getAllRecipients()); //6.关闭连接 ts.close(); } }

运行结果


实现之前我们还需要开启qq邮箱的POP3/SMTP服务才可以实现

如果对您有帮助,免费的赞点一个 感谢~~~
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630724.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号