meethigher-阿里邮箱POP3/SMTP服务

news2024/10/7 4:34:33

最近发现一个问题,小伙伴给我发的邮件,收和回都不及时。于是我现在将所有的邮箱,通过POP3/SMTP协议整合到了一起。再配合小米手环,就能做到邮件无遗漏。

一、邮箱常用协议

邮箱中常用三类协议

  • POP3
    • Post Office Protocol version 3
    • **用于获取邮件。**适用于离线访问,客户端从服务端同步了一份数据。实际是两份数据。
    • 适合离线访问
  • IMAP
    • Internet Message Access Protocol
    • **用于获取邮件。**适用于在线访问,客户端直接访问的服务端数据。实际是同一份数据。
    • 适合多设备之间同步数据,比如邮件删除会所有设备都能同步。
  • SMTP
    • Simple Mail Transfer Protocol
    • 用于接收邮件

因此,想要实现一套邮箱服务,就要有收和发,那么就有两种组合方式

  • POP3/SMTP
  • IMAP/SMTP

二、阿里邮箱

2.1 配合域名使用阿里邮箱

此处针对阿里邮箱作为示例,简单记录一下。

2.2 代码示例

Java Maven 引入邮件依赖

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>

pop3

import javax.mail.*;
import java.util.Properties;

public class POP3Example {

    public static void list(String email, String emailPassword) {
        // POP3服务器连接属性
        Properties properties = new Properties();
        properties.setProperty("mail.store.protocol", "pop3");
        properties.setProperty("mail.pop3.host", "pop3.meethigher.top");
        properties.setProperty("mail.pop3.port", "110");
        properties.setProperty("mail.pop3.ssl.enable", "false");
        properties.setProperty("mail.debug", "true");
        Session session = Session.getInstance(properties);
        try (Store store = session.getStore("pop3")) {
            store.connect(email, emailPassword);
            // 打开收件箱
            Folder folder = store.getFolder("INBOX");
            folder.open(Folder.READ_ONLY);
            // 获取邮件
            Message[] messages = folder.getMessages();
            // 遍历处理邮件
            for (Message message : messages) {
                String sender = message.getFrom()[0].toString();
                String subject = message.getSubject();
                String content = message.getContent().toString();

                // 在这里处理邮件信息
                System.out.println("Sender: " + sender);
                System.out.println("Subject: " + subject);
                System.out.println("Content: " + content);
                System.out.println("------------------------------------");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("获取邮件失败");
        }
    }
}

imap

import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import java.util.Properties;

public class IMAPExample {

    public static void list(String email, String emailPassword) {
        // POP3服务器连接属性
        Properties properties = new Properties();
        properties.setProperty("mail.store.protocol", "imap");
        properties.setProperty("mail.imap.host", "imap.meethigher.top");
        properties.setProperty("mail.imap.port", "143");
        properties.setProperty("mail.imap.ssl.enable", "false");
        properties.setProperty("mail.debug", "true");
        Session session = Session.getInstance(properties);
        try (Store store = session.getStore("imap")) {
            store.connect(email, emailPassword);
            // 打开收件箱
            Folder folder = store.getFolder("INBOX");
            folder.open(Folder.READ_ONLY);
            // 获取邮件
            Message[] messages = folder.getMessages();
            // 遍历处理邮件
            for (Message message : messages) {
                String sender = message.getFrom()[0].toString();
                String subject = message.getSubject();
                String content = message.getContent().toString();

                // 在这里处理邮件信息
                System.out.println("Sender: " + sender);
                System.out.println("Subject: " + subject);
                System.out.println("Content: " + content);
                System.out.println("------------------------------------");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("获取邮件失败");
        }
    }
}

smtp

import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;

public class SMTPExample {

    public static void send(String email, String emailPassword, String targetEmail) {
        // SMTP服务器连接属性
        Properties properties = new Properties();
        properties.setProperty("mail.smtp.host", "smtp.meethigher.top");
        properties.setProperty("mail.smtp.port", "80");
        properties.setProperty("mail.smtp.auth", "true");// 设置smtp是否需要认证
        properties.setProperty("mail.smtp.ssl.enable", "false");// 设置是否使用ssl安全连接 ---一般都使用
        properties.setProperty("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
        Session session = Session.getInstance(properties);
        try (Transport transport = session.getTransport()) {
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(email));
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(targetEmail));
            message.setSubject("JavaMail SMTP Example");
            message.setText("This is a test email sent from JavaMail API.");
            transport.connect(email, emailPassword);
            transport.sendMessage(message, message.getAllRecipients());
            System.out.println("邮件发送成功");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("邮件发送失败");
        }
    }
}

三、致谢参考

阿里邮箱IMAP、POP、SMTP地址和端口信息

阿里云(万网)域名使用阿里邮箱如何设置解析?
和端口信息](https://help.aliyun.com/document_detail/36576.html)

阿里云(万网)域名使用阿里邮箱如何设置解析?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python就业学历要求

Python 就业学历要求 Python 是一门广泛应用于数据科学、人工智能、Web 开发和自动化等领域的编程语言&#xff0c;正在迅速成为行业内最受欢迎的语言之一。如果你想进入这些领域从事相关职业&#xff0c;那么 Python 编程技能将是你的一个优势。但是&#xff0c;Python 就业所…

基于SSM+JSP的毕业生就业信息管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

软考A计划-系统架构师-官方考试指定教程-(3/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

记录--纯CSS实现一个简单又不失优雅的步骤条

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 步骤条是一种用于引导用户按照特定流程完成任务的导航条&#xff0c;在各种分步表单交互场景中广泛应用。先来看一下几个主流前端 UI 框架中步骤条组件的样子&#xff1a; ElementPlus AntDesign Ope…

BCM和board的引脚的区别是什么?如何查看GPIO的BCM和board之间的关系

在树莓派(Raspberry Pi)上使用 GPIO(通用输入输出)时,引脚可以使用两种不同的编号方式:BCM(Broadcom SOC Channel)和board。 BCM 编号:BCM 编号是基于 Broadcom 芯片的引脚编号方式。它使用芯片上的引脚功能编号来标识 GPIO 引脚,这种编号方式是树莓派广泛使用的默认…

Spring事务简介及相关案例

目录 一、事务简介 二、准备数据库 三、创建maven项目&#xff0c;引入依赖和完成相关配置 1. pom.xml文件 2. 创建配置文件 四、编写Java代码 1. Account实体类 2. AccountDao接口 3. AccountService业务类 五、测试 1. 测试方法 2. 测试结果​编辑 往期专栏&…

判断数组中的每个元素是否为正无穷大或负无穷大 numpy.isinf()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 判断数组中的每个元素 是否为正无穷大或负无穷大 numpy.isinf() [太阳]选择题 请问关于以下代码的最后输出的是&#xff1f; import numpy as np a np.array([-np.inf,0,np.inf]) print(&q…

chatgpt赋能python:Python实现文件复制到另一个文件夹下的方法

Python实现文件复制到另一个文件夹下的方法 如果你经常需要复制文件并将它们保存到不同的文件夹下&#xff0c;那么使用Python脚本来执行此任务是一个非常好的选择。Python提供了强大的文件操作功能&#xff0c;使得编写脚本来完成文件操作变得相对简单。在本篇文章中&#xf…

【网站 seo 排名优化】typecho Handsome 主题高排名权重优化方案

前言 前一篇优化文章主要是完成了对于 typecho 各个方面的美化与简单优化&#xff0c;如下&#xff1a; 构造你独一无二的博客美化&#xff1a;typecho joe主题优化日志 而现在博主采用的是 Handsome 主题&#xff0c;相比较 joe 主题&#xff0c;编辑、定制功能更为强大、方便…

华为OD机试真题 JavaScript 实现【合法IP】【牛客练习题】

一、题目描述 IPV4地址可以用一个32位无符号整数来表示&#xff0c;一般用点分方式来显示&#xff0c;点将IP地址分成4个部分&#xff0c;每个部分为8位&#xff0c;表示成一个无符号整数&#xff08;因此正号不需要出现&#xff09;&#xff0c;如10.137.17.1&#xff0c;是我…

Python中函数的介绍

在Python中&#xff0c;函数的三个要素是&#xff1a;函数名参数返回值 函数名&#xff1a;函数名是函数的标识符&#xff0c;用于唯一标识函数。在定义函数时&#xff0c;需要给函数一个名字&#xff0c;以便后续调用和引用。函数名应遵循命名规则&#xff0c;例如以字母或下划…

HDSLB VPP 23.04 is formally released

1 摘要 近年来随着数字化技术的发展&#xff0c;数据中心以及边缘设备的网络带宽需求越来越高。作为部署在服务入口位置的4层负载均衡器&#xff0c;其性能要求也随之水涨船高。为了应对当前的市场需求&#xff0c;充分利用Intel的软硬件技术和优势&#xff0c;针对4层负载均衡…

一个奇葩的问题

大家好&#xff0c;这里是极客重生&#xff0c;最近遇到一个奇葩的网络问题&#xff0c;分享给大家&#xff0c;看完一定会觉得很奇葩。 问题现象 客户反馈有一个server端S&#xff0c; 两个client端C1, C2, S的iptables规则对C1, C2都是放通的&#xff0c;但是C2无法连接上S&a…

有奖征文 | 夙兴夜寐,铸梦网安

出品&#xff5c;MS08067实验室&#xff08;www.ms08067.com&#xff09; 本文作者&#xff1a;潜龙勿用 01 时光荏苒&#xff0c;流年岁月如白驹过隙&#xff0c;不停飞逝于眼前&#xff0c;在这车马星驰的人间&#xff0c;踏入网络安全领域已然三年有余。我也终于从一开始的不…

左移右移 2022年国赛 思维

思路&#xff1a; 简单的思维题&#xff0c;应该从后往前遍历操作。如果后面的对数i操作过&#xff0c;则前面对数i的操作都可以无视。可以通过栈这种数据结构实现后往前遍历。 AC代码&#xff1a; import java.io.*; import java.util.*; public class Main{public static …

Linux常用命令——groupdel命令

在线Linux命令查询工具 groupdel 用于删除指定的工作组 补充说明 groupdel命令用于删除指定的工作组&#xff0c;本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户&#xff0c;则必须先删除这些用户后&#xff0c;方能删除群组。 语法 gro…

LC3-仿真器的安装

LC3-仿真器安装 参考&#xff1a;Download and Install LC-3 | CS 131 - Computer Organization (comp-org-etext.netlify.app) 如觉得本文写的不够详细&#xff0c;可参考如上网址。 介绍 小型计算机LC-3 汇编环境是一种模拟指令架构&#xff08;ISA&#xff09;&#xff0c;…

wpf 3d复习1

之前研究过一段wpf 3d显示机械臂的代码&#xff1b;复习一下看一下&#xff1b; 它的摄像机位置是&#xff0c;0.491531,0.298732,0.321531&#xff1b; 我想把看到物体变小&#xff1b;就是摄像机移远&#xff1b;把摄像机坐标都乘以3&#xff0c;变为 &#xff0c; …

chatgpt赋能python:Python平均值函数简介

Python平均值函数简介 Python是一种广泛使用的编程语言&#xff0c;因为它易于学习&#xff0c;语法简单&#xff0c;可以完成广泛的任务和应用程序开发。 在Python编程中&#xff0c;平均值函数是最基本、最常用的函数之一。平均值可以用来表示一组数据集的中心趋势指标。让…