• Java开发系列-电子邮箱


    概述

    电子邮箱就是在邮箱服务器上开启的一块空间。邮箱服务器就是一个安装在计算机的服务软件,提供有邮件服务。

    邮箱的发送流程

    现在tom要发送一份邮件给jerry,首先tom将邮件通过客户端连接自己设置发送邮件服务器,通过邮件发送服务器将邮件发给了jerry的发送邮件服务器中。
    jerry也是通过客户端连接自己的收件服务器,然后收件服务器从jerry的发件服务器中获取邮件。
    如果jerry要发送邮件给tom也是相同的流程。

    邮箱协议

    邮件的发送和接收都是需要协议的,分别是发送邮件协议、接收邮件的协议。
    发送邮件的协议:smtp
    接收邮件的协议:pop/pop3 或者 imap

    查看下126邮箱的发送和接收邮件协议服务器

    Java实现发送邮件

    主要涉及到三个核心类

    Properties 邮件服务器会话对象 Session
    Message 邮件内容
    Transport 邮件发送者

    邮件发送Utils

    MailUtils

    package com.coderhong.utils;
    
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMessage.RecipientType;
    
    public class MailUtils {
    
    	public static void sendMail(String email, String emailMsg)
    			throws AddressException, MessagingException {
    		// 1.创建一个程序与邮件服务器会话对象 Session
    		Properties props = new Properties();
    		//设置发送的协议
    		props.setProperty("mail.transport.protocol", "SMTP");
    		
    		//设置发送邮件的服务器
    		props.setProperty("mail.host", "smtp.163.com");
    		props.setProperty("mail.smtp.auth", "true");// 指定验证为true
    
    		// 创建验证器
    		Authenticator auth = new Authenticator() {
    			public PasswordAuthentication getPasswordAuthentication() {
    				//设置发送人的帐号和密码
    				return new PasswordAuthentication("hongketao1616", "hkt762100.");
    			}
    		};
    
    		Session session = Session.getInstance(props, auth);
    
    		// 2.创建一个Message,它相当于是邮件内容
    		Message message = new MimeMessage(session);
    
    		//设置发送者
    		message.setFrom(new InternetAddress("hongketao1616@163.com"));
    
    		//设置发送方式与接收者
    		message.setRecipient(RecipientType.TO, new InternetAddress(email)); 
    
    		//设置邮件主题
    		message.setSubject("用户激活");
    		// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");
    
    		//设置邮件内容
    		message.setContent(emailMsg, "text/html;charset=utf-8");
    
    		// 3.创建 Transport用于将邮件发送
    		Transport.send(message);
    	}
    }
    

    MailUtils说明

  • 相关阅读:
    git报错:failed to push some refs to 'git@github.com:JiangXiaoLiang1988/CustomerHandl
    Form_通过Trace分析Concurrent和Form性能和异常详解(案例)
    PLSQL_Oracle Lock锁的处理(案例)
    Report_客制化报表输出Excel后去0问题(案例)
    DBA_Oracle DBA常用表汇总(概念)
    PLSQL_Oracle PLSQL处理日期方式大全(概念)
    PLSQL_Oracle PLSQL内置函数大全(概念)
    PLSQL_PLSQL中DML/DDL/DCL的概念和区分(概念)
    Shell_Oracle Erp基于主机文件Host开发详解(案例)
    Report_客制化以PLSQL输出HTML标记实现WEB报表(案例)
  • 原文地址:https://www.cnblogs.com/CoderHong/p/9520793.html
Copyright © 2020-2023  润新知