搭建私人邮件服务器

搭建私人邮件服务器怎样使用本地服务器搭建一个邮箱,这样就可以脱离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)
上一篇 2022年5月20日 上午8:40
下一篇 2022年5月20日 上午8:40


相关推荐

  • 卡巴斯基kav为什么总提示程序已经断开连接「建议收藏」

    卡巴斯基kav为什么总提示程序已经断开连接「建议收藏」用着用着就出现了程序已经断开连接的提示.要求重启产品.请问为什么会这样?该如何解决?这是KIS的一个BUG,我也遇到过。与楼上说的授权啊地震啊都没有关系。下载新版本的KIS就能解决。http://www.kpfans.com/bbs/index.php这是卡巴斯基爱好者论坛,里面有几乎有所有的新旧版本。 

    2022年8月20日
    9
  • clientWidth–用法[通俗易懂]

    clientWidth–用法[通俗易懂]<!DOCTYPEhtml><html><head><title></title><metacharset=’utf-8’/><styletype=”text/css”>*{margin:0;padding:…

    2022年7月22日
    18
  • 披荆斩棘、共赴未来-2020总结及2021年计划

    披荆斩棘、共赴未来-2020总结及2021年计划一 前言在繁忙的工作中不知不觉又迎来了新的一年 2020 年这一年是有意义的 有价值的 有收获的 回顾这一年的工作历程 你是否让自己满意 让老板满意 有没有达到自己的要求 如果说要给自己过往一年的工作打个分数的话 你会打多少分呢 我给自己打了一个分数 打 75 分 扣掉的那 25 分算是今年在选择上的一个重大失误吧 之前一直没有写年终总结的习惯 受这两年接触企业及人员影响的原因 从去年开始写了第一篇年终总结 2019 年总结与 2020 年展望 突然发现 自己也挺喜欢在年底的时候复盘一下过往一年的工作 同时制定未

    2026年3月20日
    2
  • 记录mybatis分页查询失败[通俗易懂]

    记录mybatis分页查询失败[通俗易懂]在进行mybatis的分页查询时出现ExceptionInIntializerError错误代码信息如下在检查mapper和插件配置后,试着换了一下mybatis的版本后原版本替换后版本成功的进行了分页查询

    2022年6月2日
    50
  • 罗马字符转整数(python)

    罗马字符转整数(python)力扣:罗马字符转整数(python实现)难度:简单

    2026年4月17日
    3
  • c++实现登录注册功能(用Javaweb制作登录注册页面)

    这两天c#大作业要求做一个简单的通讯录系统,我就先做了登录和注册的功能,在网上看了一些代码,自己再做,终于做出来了。做的不是很美观,但是可以简单实现。首先用sqlserver建表。我建了一个名为user_info的表,添加username和passdword两个字段。创建登录页面,改了一些控件的名称,效果如下图:登录界面代码如下:privatevoidbtn_Login…

    2022年4月15日
    411

发表回复

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

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