• windows server2012搭建邮箱服务器+客户端界面(hmailserver+afterlogic)+批量创建邮箱


    1.简介

      由于需要较多邮箱,如果去注册需要很多的手机号码去验证,一个人不可能买一堆的手机号,所以自己搭建一个邮箱服务器可以大批量的创建自己的邮箱账号和收发邮件。

    2.安装部署hmailserver

    1. 下载hmailserver,根据实际情况选择版本,一般就是选择最新版本。

    2. 双击下载后的文件安装过程中一直下一步或者自己选择路径,碰到一步需要选择数据库的根据自己的数据库类型进行选择(本文选择使用mysql)


    2.1 再下一步到输入密码这是设置管理密码的

    2.2 验证HMailServer密码,同上面设置的密码

    2.3 创建或者已有邮箱服务需要的数据库(本文选择新创建)

    2.4 选择数据库类型(本文使用mysql)

    2.5 配置数据库连接参数

    2.6 直接一直下一步,中途会遇到一个报错找不到mysql32位的dll,如下图

    解决方案:下载32位的libmsql.dll对应的dll放进Bin文件夹下,位置如下(根据自己的安装路径)

    解压到对应的地方之后刚才报错的界面再按下一步,然后安装成功,打开运行

    2.7 点击ok之后进入管理界面,添加域名

    2.8 设置SMTP可明文密码发送

    2.9 配置ip地址范围(这边不做限制直接设置为全部打开)

    2.10 添加邮箱账号

    3. 到域名后台把域名MX和A类型解析到邮箱服务器,服务器对外开放25,110,143,587端口(注意25端口如果是腾讯服务器需要去控制台我的》安全管控》申请解放25端口),如果只收不发可以不用25端口

    4. 使用Foxmail测试是否成功
    打开Foxmail》管理账号》新建》其他邮箱》手动设置,然后会弹出如下界面

    5. 创建成功后用自己的qq邮箱给刚才设置好的邮箱发一封邮件试试,如下收到了测试邮件表示成功

    6. 回复qq邮箱得到如下结果
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jYrqhepp-1645489965713)(https://gitee.com/wuyubing/pic/raw/master/2022-2-12/1644667019318-1644666994(1)].jpg)
    7. 批量创建邮箱

    7.1 找个目录建一个文件夹(本文在桌面创建了测试文件夹),建一个.vbs的文件内容如下:

    Option Explicit
     On Error Resume Next
      wscript.echo  "start ..."
     Dim obBaseApp
     Dim objFSO
     Dim objTextFile
     Dim strNewAlias,i
     Dim scrreport
     Dim failed
     Dim added
     failed=0
     added=0
     i=0
     Const ForReading=1
     Set obBaseApp=CreateObject("hMailServer.Application")
     Call obBaseApp.Authenticate("Administrator","hmail上面设置的管理密码") 
     Set objFSO=CreateObject("Scripting.FileSystemObject")
     Set objTextFile=objFSO.OpenTextFile("users.txt",ForReading)   
     Do While objTextFile.AtEndOfStream<>True
       strNewAlias=split(objTextFile.Readline,",")
       Select Case strNewAlias(0)
         Case "User"
    	AddUser strNewAlias(1),strNewAlias(2),strNewAlias(3)
         Case "Alias"
    	AddAlias strNewAlias(1),strNewAlias(2),strNewAlias(3)
         Case "Delete"
    	DelUser strNewAlias(1),strNewAlias(2)
       End Select
      If err.Number<>0 Then  
        scrreport=scrreport&"Failed add(probably duplicate):"&strNewAlias(0)&","&strNewAlias(1)&","&strNewAlias(2)&","&strNewAlias(3)&VBNewLine
        failed=failed+1
        err.Clear
      Else
       added=added+1
      End If
      i=i+1
     Loop
     
    scrreport=scrreport&""&VBNewLine
    scrreport=scrreport&"Added="&added&VBNewLine
    scrreport=scrreport&"Failed or Duplicates="&failed&VBNewLine
    wscript.echo scrreport
    wscript.echo  "end !"
     
    Sub AddAlias(strAlias,strEmailAddress,strDomain)
      Dim obDomain
      Dim obAliases
      Dim obNewAlias
      Set obDomain=obBaseApp.Domains.ItemByName(strDomain)
      Set obAliases=obDomain.Aliases
      Set obNewAlias=obAliases.Add()
      obNewAlias.Name=strAlias&"@"&strDomain     
      obNewAlias.Value=strEmailAddress           
      obNewAlias.Active=1
      obNewAlias.Save()
      Set obNewAlias=Nothing
      Set obAliases=Nothing
      Set obDomain=Nothing
    End Sub
     
    Sub AddUser(strUsername,strPassword,strDomain)
     Dim obDomain
     Dim obAccounts
     Dim obNewAccount
     Set obDomain=obBaseApp.Domains.ItemByName(strDomain)
     Set obAccounts=obDomain.Accounts
     Set obNewAccount=obAccounts.Add()
     obNewAccount.Address=strUsername&"@"&strDomain      'username
     obNewAccount.Password=strPassword                   'password
     obNewAccount.Active=1                               'activatesuser
     obNewAccount.Maxsize=500                             'set smailbox size,0=unlimited
     obNewAccount.Save()    
    wscript.echo  "addok--"&obNewAccount.Address                              
     Set obNewAccount=Nothing
     Set obDomain=Nothing
     Set obAccounts=Nothing
    End Sub 
     
     
    Sub DelUser(strUsername,strDomain)
     Dim obDomain
     Dim obAccounts
     Dim obDelAccount
     Set obDomain=obBaseApp.Domains.ItemByName(strDomain)
     Set obAccounts=obDomain.Accounts
     Set obDelAccount = obAccounts.ItemByAddress(strUsername & "@" & strDomain)
     obDelAccount.Delete()
     wscript.echo  "delok--"& strUsername & "@" & strDomain                              
     Set obDelAccount=Nothing
     Set obDomain=Nothing
     Set obAccounts=Nothing
    End Sub 
    

    在刚才创建的目录下再建一个txt文件,批量要生成的内容如下:

    User,test05,Test@102,xxxxxx.com
    User,test06,Test@203,xxxxxx.com
    User,test07,Test@304,xxxxxx.com
    

    文件格式固定User开头,用户名,密码,域名
    7.2 双击.vbs的文件执行,执行成功之后可以看到插入了三条账号

    3安装部署afterlogic

    3.1 由于邮箱要分配到每个人根据自己的邮箱和密码登录查看和发送邮件,所以需要一个可视化界面来操作,所以开始如下部署(本文选用php版本,部署比较简单,当然您可以选择net版本)

    3.2 下载PHP运行环境XAMPP(如果服务器有php环境请跳过本步骤)

    3.3 安装过程选择如下图因为本服务器已经安装了mysql所以去掉打钩如果没有按照的就选择打钩,根据自己的服务器需求来进行安装


    然后就一直下一步直到安装完成。(注意启动Apache的时候默认是80端口如果启动失败端口被占用,先修改一下,本文改为6052)

    打开文件之后找到所有80的位置改为6052

    以上步骤做完还可能遇到443也被占用,同上一个打开ssl的配置文件修改端口如下图


    启动成功如下:

    3.4 下载afterlogic,选择php版本

    3.5 在xampp安装路径下的htdocs目录下创建一个目录然后把下载好的php文件解压到目录

    3.6 修改htdocs目录下的index.php文件跳转目录指定到上一步创建的目录

    3.7 进入配置管理http://127.0.0.1:6052/mail/adminpanel/#/默认用户是superadmin默认密码为空,登录进去之后

    3.8 先修改密码避免开放外网时候别人进入你的管理界面

    3.9 第二步设置数据库;先填好配置,然后安装1,2,3逐个点击都要执行成功最后点保存

    3.10 设置邮箱服务(添加一条服务)



    3.11 测试是否成功,打开主页http://127.0.0.1:6052/mail/输入hmailserver添加好的邮箱和密码


    顺利完成!

    至于站点配置域名访问,使用nginx配置域名指定到此端口号就行了。

  • 相关阅读:
    植物大战僵尸各种僵尸攻略(四)
    vue-pdf在vue框架中的使用
    Node 安装 Vuex
    Hadoop环境安装与配置
    机器学习(一)Spark机器学习基础
    Java项目:JSP民宿预订网站信息管理平台
    Windows进入BIOS界面快捷键是什么
    es搜索功能——DSL查询文档——DSL基本语法
    Elasticsearch索引文档的父子结构应用
    Xception --tensorflow2.x
  • 原文地址:https://www.cnblogs.com/wuyubing/p/15895447.html