如何本地搭建hMailServer邮件服务

文章目录

    • 前言
    • 1. 安装hMailServer
    • 2. 设置hMailServer
    • 3. 客户端安装添加账号
    • 4. 测试发送邮件
    • 5. 安装cpolar
    • 6. 创建公网地址
    • 7. 测试远程发送邮件
    • 8. 固定连接公网地址
    • 9. 测试固定远程地址发送邮件

前言

hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工具即可实现远程发送邮件,不需要使用公网服务器,不需要域名,而且邮件账号名称可以自定义.

下面以windows 10系统为环境,介绍使用方法:

1. 安装hMailServer

进入官方下载:https://www.hmailserver.com/download,选择最新版本,下载的时候浏览器可能会提示报毒,点击保留即可

下载好后.打开exe文件进行安装,直接点击Next下一步即可,到了设置密码步骤,我们设置一个密码,然后Next下一步完成安装

image-20230615132651836

2. 设置hMailServer

上面我们安装完成了hMailServer,现在设置邮件名称和添加账号,打开hMailServer,点击connect连接本地的服务

image-20230615150942081

提示输入密码,该密码是我们上面设置的密码,输入后点击ok

image-20230615151054889

进入后,我们首先需添加一个邮件主体名称,点击Add domain

这个名称我们可以随便设置,符合一个域名标准格式即可,如abc.com ,123.com , test.com等,我们这边设置test.com测试使用,设置完成点击sava保存

加下来添加账号,点击Domains,然后点击上面我们设置域名主名称下面的Accounts,进入后点击右侧的Add,添加账号

输入账号名称,和密码,名称我们可以自定义,这里我们创建的账号就是我们的邮箱账号,账号和密码就是我们登录邮箱的账号密码

image-20230615152037671

同样的方式,我们再创建一个,方便测试,两个名称不要重复

设置完成后,我们可以看到列表出现了两个用户,服务端就设置完成了

image-20230615153831801

3. 客户端安装添加账号

上面我们设置好了本地自己的邮件服务,现在我们安装客户端测试,这边安装一个Foxmail客户端进行测试,进入官网下载:https://www.foxmail.com/

下载后安装,安装完成打开Foxmail,我们添加邮箱账号,点击其他邮箱

点击手动设置

在页面上我们输入上面创建的账号和密码,服务器地址填写本机地址:127.0.0.1,其他参数默认,输入完点击创建

image-20230615154549383

添加账号成功后我们在左侧看到了我们自己的账号,添加我们创建的第二个账号,点击左侧菜单下面的账号管理

image-20230615154857818

我们看到有个定时收取邮件的按钮,取消勾选,然后点击新建

image-20230615155055159

同样选择其他邮件—手动设置,输入我们上面创建的第二个邮箱账号的账号密码,点击创建

创建后,我们同样勾选定时收取邮件按钮,点击应用即可,账号添加完成

image-20230615155500479

4. 测试发送邮件

我们上面在Foxmail添加了两个账号,现在测试发送邮件,选中一个账号,点击写邮件

image-20230615155644496

收件人填写我们另一个账号,然后输入邮件内容,点击发送

image-20230615155806789

发送完成后,我们点击页面上面收取邮件,即可看到我们发送的邮件,如果点击一次没有出来,可以等10秒再次点击,本地测试发送邮件完成,下面我们配置远程发送邮件

image-20230615155920888

5. 安装cpolar

cpolar官网:https://www.cpolar.com/

Windows系统可以直接在官网下载适用于Windows平台的zip压缩包,解压后得到cpolar安装包,然后双击安装包一路默认安装即可。

image-20230615161202668

6. 创建公网地址

cpolar安装成功后,在浏览器上访问cpolar web UI管理界面(默认为本地9200端口),以【 http://本地ip地址:9200 】形式访问,如http://127.0.0.1:9200/,并使用cpolar账号登录

20230106104443

登录成功后,点击左侧的隧道管理——创建隧道,我们先创建第一个隧道,这个隧道是收邮件隧道:

  • 隧道名称:收邮件
  • 协议:选择tcp协议
  • 本地地址:110(服务端的收邮件端口)
  • 端口类型:随机临时TCP端口
  • 地区:China vip

点击创建

image-20230615161918672

创建第二个隧道,发邮件隧道

  • 隧道名称:发邮件
  • 协议:选择tcp协议
  • 本地地址:25(服务端的发邮件端口)
  • 端口类型:随机临时TCP端口
  • 地区:China vip

image-20230615162120992

创建成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到刚刚创建成功的两个隧道,一个是发邮件,一个收邮件,中间这个就是对应的公网地址,通过这个地址我们就可以实现两个账号远程发送邮件.

image-20230615162334562

7. 测试远程发送邮件

打开我们Forxmail 邮箱客户端,找到我们添加的账号,右键点击设置

image-20230615162529785

然后设置收件服务器和发件服务器的地址,这两个地址就是我们上面创建的两个cpolar公网地址,端口对应公网地址的端口,记得不要输入错误,输入完点击应用,image-20230615162707419

设置完成后,我们使用设置公网地址的这个账号远程给另一个账号发送邮件.

image-20230615163552597

可以看到另一个接收完成了,远方的朋友通过这个方式添加账号即可发送邮件给你

image-20230615171219912

8. 固定连接公网地址

要注意的是,以上步骤使用的是cpolar随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。

cpolar官网: https://dashboard.cpolar.com/login

登录cpolar官网,点击左侧的预留,找到保留的tcp地址,保留第一个接收邮件的地址:

  • 地区:选择China
  • 描述:接收邮件地址

点击保留

image-20230615172113998

保留第二个发送邮件的地址:

  • 地区:选择China
  • 描述:发送邮件地址

点击保留

image-20230615172209998

地址保留成功后,系统会生成相应的固定公网地址,将两个地址复制下来,这里记得区分好,不要搞混了

image-20230615172330065

进入cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建接收邮件的tcp隧道,点击右侧的编辑

image-20230615172452983

修改隧道信息,将官网保留成功的接收邮件地址固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的接收邮件地址,

点击更新

image-20230615172622769

然后编辑第二个发邮件的隧道

image-20230615172815520

同样,把另一个发送邮件的固定地址也配置到对应的发邮件隧道里面

image-20230615172739180

两个隧道设置更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定tcp地址。

image-20230615172915503

9. 测试固定远程地址发送邮件

同样我们选择其中一个邮箱账号,右键点击设置

image-20230615173050969

我们把收件服务器和发件服务器的地址换成我们在cpolar官网设置的固定地址,记得地址不要搞反了,端口对应地址的端口,设置完成点击应用

image-20230615173208904

然后选择这个邮箱向另一个邮箱账号发送邮件

我们可以看到邮件发送成功,另一个账号也接收成功,这样一个自己的邮件服务就搭建好了,同时可以远程发送邮件.

image-20230615173643578

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

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

相关文章

Android中使用intent可以传递哪些类型的数据?

Intent可以传递的数据类型基本上分为四种; (1)基本数据类型(包括int,char,string等类型的数据); //传递String intent.putExtra("key_str","传递简单基础的数据");//获取 str = intent.getStringExtra("key_str"); (2)Bundle类型 …

C语言——预处理

宏定义 作用进行文本替换 #define 文本1 替换为 #define a 5 取消宏定义 #undef 取消宏定义 #define a 5 printf ("%d" ,a); #undef a printf ("%d" ,a);//在调用宏a时将报错 文件预处理 #include<>//现在系统目录中找&#x…

免密ssh密钥登录Linux该如何设置

我们在使用ssh客户端远程连接Linux服务器时&#xff0c;为了考虑安全方面的因素&#xff0c;通常使用密钥的方式来登录。密钥分为公钥和私钥&#xff0c;这两把密钥可以互为加解密。公钥是公开的&#xff0c;私钥是由个人自己持有&#xff0c;并且必须妥善保管和注意保密。 Li…

《圣斗士星矢》AI制作真人大电影宣传片

《圣斗士星矢》AI制作真人大电影宣传片 The ancient gods awaken, a battle of light and shadow unfolds.古神觉醒&#xff0c;光明与黑暗之战一触即发。 Heroes stand, facing the abyss of evil.英雄挺立&#xff0c;直面邪恶深渊。 The stars align, the chosen ones ris…

Linux:kubernetes(k8s)有状态的服务部署(14)

之前我都是对无状态进行的一个操作&#xff0c;我们想扩容就扩容&#xff0c;想缩容就缩容&#xff0c;根本不用去考虑他的一个网络环境&#xff0c;本地储存环境啥的一个状态 当我们做有状态的服务的操作&#xff0c;肯定要申请一个持久化的一个空间&#xff0c;以及网络&…

nginx代理

nginx代理 前言1、nginx下载下载路径下载稳定版本解析安装到指定目录下2、Nginx服务的启动和停止启动启动成功看我们的配置的端口是多少启动成功关闭nginx3、nginx报错日志路径4、nginx.conf的配置4.1通过root配置文件的存放地址4.2接口代理前言 nginx在平时项目部署中是一个经…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridItem)

网格容器中单项内容容器。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。仅支持作为Grid组件的子组件使用。 子组件 可以包含单个子组件。 接口 GridItem GridItem(value?: GridItemOptions)…

合作测试开发日志1

2024/3/16 创建了DreamWind项目&#xff0c;用于开发测试 搭建后端 userService.js const Service require("egg").Service;class UserInfoService extends Service {//1.登录验证&#xff08;根据用户名和密码进行查询&#xff09;async QueryUserByUserName…

apisix http请求转发插件by lua

应用场景&#xff1a; 用户请求想要生产的流量打到原有服务的同时&#xff0c;打到新开发的服务上试一下 注意的点&#xff1a; 1 nginx是不读请求体的&#xff0c;需要在配置文件中打开&#xff0c;或者读取前调用ngx.req.read_body()&#xff0c;然后通过local data ngx.r…

【数据结构与算法】:选择排序与快速排序

&#x1f525;个人主页&#xff1a; Quitecoder &#x1f525;专栏&#xff1a;数据结构与算法 我的博客即将同步至腾讯云开发者社区&#xff0c;邀请大家一同入驻&#xff1a;腾讯云 欢迎来到排序的第二个部分&#xff1a;选择排序与快速排序&#xff01; 目录 1.选择排序1.…

鸿蒙原生应用元服务开发-WebGL网页图形库开发着色器绘制彩色三角形

着色器绘制彩色三角形 使用WebGL开发时&#xff0c;为保证界面图形显示效果&#xff0c;请使用真机运行。 此场景为使用WebGL绘制的彩色三角形图形&#xff08;GPU绘制&#xff09;。开发示例如下&#xff1a; 创建页面布局。index.hml示例如下&#xff1a; <div class&quo…

鸿蒙开发(五)-应用签名相关

鸿蒙开发(五)-应用签名相关 本篇文章主要介绍下鸿蒙应用下的应用签名的创建与配置。 根据之前的介绍&#xff0c;我们知道&#xff0c;在DevEco Studio默认创建的应用程序&#xff0c;是没有sign配置的。 默认输出的应用文件如下&#xff1a; build->default->output…

unsupported ssl backend ‘openssl‘. supported ssl backends:gnutls

遇到 “unsupported ssl backend ‘openssl’. supported ssl backends: gnutls” 这类错误&#xff0c;通常是因为你的开发环境或者某些工具配置了使用 OpenSSL 作为 SSL 后端&#xff0c;但该环境或工具实际上仅支持 GnuTLS。这种情况可能发生在多种不同的场景中&#xff0c;…

力扣面试150 两数之和 II - 输入有序数组 双指针 HashMap

Problem: 167. 两数之和 II - 输入有序数组 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public int[] twoSum(int[] numbers, int target) {int l 0;int r numbers.length-1;while(l < r){if(numbers[l] numbers[…

MySQL基础-----多表查询之子查询

目录 前言 子查询概述 1.概念 2.分类 一、标量子查询 二、列子查询 三、行子查询 四、表子查询 前言 上一期我们讲了内外连接查询以及自连接查询&#xff0c;那么本期我们就学习多表查询的子查询。本期会详细讲解什么是子查询&#xff0c;以及子查询的相关功能&#xf…

智慧公厕建设,助力打造宜居、韧性、可持续的智慧城市

公共厕所作为智慧城市的重要组成部分&#xff0c;对于城市的高质量发展起着至关重要的作用。智慧公厕建设旨在通过全面监测、控制和管理公共厕所&#xff0c;实现多方面功能&#xff0c;包括公共厕所环境监测与调控、厕位占用监测与引导、消耗品监测与缺失提示、安全防范与管理…

力扣78. 子集

Problem: 78. 子集 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.定义一维数组track用于记录决策路径&#xff0c;二维数组res用于存储所有的子集&#xff1b; 2.决策阶段&#xff1a;从0阶段起来&#xff08;0阶段决策路径中为空集&#xff09;&#xff0c;每…

大模型-企业集成openAI技术指导方案

技术方案建议 使用RESTful API&#xff1a;采用RESTful API架构&#xff0c;实现与OpenAI服务的交互和数据传输。数据安全&#xff1a;确保用户数据的安全性和隐私保护&#xff0c;采用加密传输和安全认证机制。用户界面设计&#xff1a;设计直观友好的用户界面&#xff0c;提…

【拓扑空间】可分性2

可分拓扑空间 如果拓扑空间有可数的稠密子集&#xff0c;则称是可分拓扑空间。 可分&#xff1a;有可数子集A&#xff0c; 拓扑空间&#xff1a; 1.&#xff0c; 2.任意并 3.有限交 稠密&#xff1a; 闭包 导集&#xff1a;所有聚点的集合 聚点&#xff1a;任意去心领域&am…

并查集Disjoint Set

并查集的概念 并查集是一种简单的集合表示&#xff0c;它支持以下三种操作 1. make_set(x)&#xff0c;建立一个新集合&#xff0c;唯一的元素是x 2. find_set(x)&#xff0c;返回一个指针&#xff0c;该指针指向包含x的唯一集合的代表&#xff0c;也就是x的根节点 3. union_…