搭建私人邮件服务器

搭建私人邮件服务器怎样使用本地服务器搭建一个邮箱,这样就可以脱离qq或者其他企业邮箱的限制,即可以做到节省成本,又可以得到收发邮件的一个保密性。这里我们先展示一下本地搭建邮箱服务器后的成功例子:可以看到,这里qq邮箱收到我这边发送的一个测试邮件例子(特别说明一下,这里的wordcap.top是我自己购买的一个域名)同样qq也可以向我发送邮件:怎样搭建一个属于自己的私人邮箱服务器了,我这里演示一遍:准…

大家好,又见面了,我是你们的朋友全栈君。

怎样使用本地服务器搭建一个邮箱,这样就可以脱离qq或者其他企业邮箱的限制,即可以做到节省成本,又可以得到收发邮件的一个保密性。
这里我们先展示一下本地搭建邮箱服务器后的成功例子:
在这里插入图片描述
可以看到,这里qq邮箱收到我这边发送的一个测试邮件例子(特别说明一下,这里的wordcap.top 是我自己购买的一个域名)
同样qq也可以向我发送邮件:
在这里插入图片描述

怎样搭建一个属于自己的私人邮箱服务器了,我这里演示一遍:
准备:
一个顶级域名:国内国外的都可以,当然也可以不需要顶级域名,前提是这个域名需要解析到你的服务器ip上
frp 内网穿透(包含公网ip的服务器):这个方便本地调试(如果不是很懂也可以查看上篇微信中内网穿透文章)
邮件服务器:Linux上可以用iredmail,Windows是可以用hMailServer,由于我为了方便测试,所以我用的是Windows版本的。
Linux安装方式(这里大家如果是用的Linux服务器可以用这个)
官网(开源iredmail安装方式):
https://docs.iredmail.org/install.iredmail.on.rhel-zh_CN.html

1.安装软件
下载Windows版本的hMailServer
https://www.hmailserver.com/download
双击运行安装

1.1输入邮件登录密码
在这里插入图片描述
安装完成之后连接本地服务器:
1.2添加一个主机域名:
在这里插入图片描述
1.3添加一个邮箱账号
在这里插入图片描述

1.4查看该邮箱服务器是否是启动状态:
在这里插入图片描述
1.5使用foxmail 测试一下:
下载安装
在这里插入图片描述
运行后手动配置(手动设置,设置密码等等):
在这里插入图片描述
1.6本地写封邮件测试:
在这里插入图片描述
本地虽然发送成功,但是收到腾讯的处理消息:
在这里插入图片描述

2.配置软件需要环境
由于我们的ip地址是动态的,不是固定的所以受到限制
2.1配置域名解析到服务器IP上
这里我们为了方便测试,在某平台上花了9块人民币购买了一个域名,并配置了二级域名和解析地址:
在这里插入图片描述

2.2配置内网穿透文件
同时为了方便测试,我们用内网穿透工具frp在本地进行测试:
首先我们测试一下,端口在不符合常规邮件端口的情况下能否收到邮件:
我们修改成这样:
在这里插入图片描述
2.3测试
试着用qq发送邮件:
在这里插入图片描述
显示已经发生成功,但是我们查看邮件时却并未收到任何邮件
在这里插入图片描述
在这里插入图片描述
2.4准确配置邮件监听端口
我们监听一下25这个端口(收邮件端口并不进行修改):
在这里插入图片描述
2.6重新测试
再重新写一封,我们发现通过25这个端口是可以接收到邮件的:
在这里插入图片描述

我们试着给qq发送一封小邮件:
在这里插入图片描述
发现也可以正常的收到
所以,设置邮件服务器端口和我平常设置网页不一样,平常http接口可以通过url后缀进行修改端口号,但是邮件服务器端口都是指定的
2.7使用代码实现注册邮件激活功能
我们现在试着用代码测试一下发送一个激活邮件的功能(这里我是用的是spring boot 框架):
代码如下(虽然可以配置spring boot yml 文件,但是测试时我这边使用的是代码,大家实际运用是改动一下就可以了):

   @Test
    public void sendSimpleMail() throws Exception {
        //手动创建的实例的属性和配置文件中的大致相同
        JavaMailSenderImpl sender=new JavaMailSenderImpl();
        sender.setDefaultEncoding("utf8"); //编码
        sender.setHost("mail.wordcap.top");//163 smtp服务器
        sender.setPort(25); //端口
        sender.setUsername("test@mail.wordcap.top"); //邮箱
        sender.setPassword("123456");//授权码
        sender.setProtocol("smtp"); //协议
        //配置额外属性
        Properties properties=new Properties();//额外设置的属性
        properties.setProperty("mail.smtp.auth", "true");//是否需要验证
        properties.setProperty("mail.smtp.timeout","2000");//超时
//    properties.setProperty("mail.smtp.ssl.enable", "true");//ssl加密


        properties.setProperty("mail.debug", "true");//是否显示调试信息(可选测试用)
        properties.setProperty("mail.transport.protocol", "smtp");//协议
        properties.setProperty("mail.smtp.auth", "true");//设置用户验证
        properties.setProperty("mail.smtp.timeout","250000");//超时时间
        properties.setProperty("mail.smtp.connectiontimeout","250000");//超时时间


        sender.setJavaMailProperties(properties);


        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("test@mail.wordcap.top");
        message.setTo("2562957962@qq.com");
        message.setSubject("测试");
        message.setText("你的注册链接激活地址为 http://user.wordcap.top?m=678giyiy756gqwehoudas9f8heuqy9w8ehfashuihuwiqerhhd154845jdaskljgadjlfjaslfjasl0ewqnjngvjk");
        sender.setJavaMailProperties(properties);
        sender.send(message);

    }

运行之后,qq上直接收到这封邮件:
在这里插入图片描述
在这里插入图片描述

本地编译器输出如下:
在这里插入图片描述

测试完毕感觉还是不错的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144119.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++条件运算符_位运算符

    C++条件运算符_位运算符C++条件运算符(?:)的通用格式如下:表达式1?表达式2:表达式3说明:如果表达式1为true,则整个表达式的值为表达式2的值(即,冒号左边的值);如果表达式1为false,则整个表达式的值为表达式3的值(即,冒号右边的值);C++中,条件运算符(?:)是唯一需要3个操作数的运算符。下面举个简单的例子进行说明例如:(1) inta=1; int…

    2022年10月2日
    2
  • 详解高级PHP工程师面试题

    详解高级PHP工程师面试题

    2022年2月12日
    43
  • 激活成功教程山西网通、电信的禁止路由共享(网络尖兵类软件)转载

    激活成功教程山西网通、电信的禁止路由共享(网络尖兵类软件)转载近段时间来 很多地方的电信 ISP 使用了一个叫 网络尖兵 的设备来限制用户共享上网 给大家带来了许多不便 经过手们不懈的努力 现在已经能激活成功教程 网络尖兵 要注意把 网络尖兵 和最近受病毒攻击事件相区别 受病毒攻击时 ADSLMODEM 一般要重启才能用 而受 网络尖兵 影响的等上几分钟就可以继续上网了 而且打开一个网页要经常刷新好几次才能打得开 经过研究发现它是采用多种方法探测用户是否用共享方

    2025年11月9日
    0
  • android 通过类名跳转activity,Activity跳转方式总结

    android 通过类名跳转activity,Activity跳转方式总结一、显式调用方法方法一:Intentintent=newIntent(本类,将要跳转的类);//Intentintent=newIntent(MainActivity.this,JumpToActivity.class);startActivity(intent);方法二:Intentintent2=newIntent();intent2.setClass(本类,将要跳转的类)…

    2022年5月22日
    33
  • mysql查询语句菜鸟教程_数据库的查询语句大全

    mysql查询语句菜鸟教程_数据库的查询语句大全常规查询查询所有字段:select*from表名;查询指定字段:select列1,列2,…from表名;使用as给字段起别名:select字段as名字….from表名;查询某个表的某个字段:select表名.字段….from表名;可以通过as给表起别名:select别名.字段….from表名as别名;消除重复行:…

    2025年10月5日
    2
  • Xlsx结合File-Saver实现前端页面表格导出Excel为文件

    Xlsx结合File-Saver实现前端页面表格导出Excel为文件系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

    2022年6月28日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号