• 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说明

  • 相关阅读:
    Work harder, smarter 工作需要努力和智慧
    且慢下手(转)
    .net 打包中的参数传递
    sql语句编写技巧
    在安装文件中解压sfx压缩文件
    vs.net编程技巧
    統制勘定(reconciliationaccounts)とは
    ExtJs页面布局总结(转载)
    ext自定义form表单参数为JSON格式getJsonValue:(同时提交多个表单时需要用到)
    oracle截取日期函数
  • 原文地址:https://www.cnblogs.com/CoderHong/p/9520793.html
Copyright © 2020-2023  润新知