时间:2023-02-10 00:39:01 | 来源:建站知识
时间:2023-02-10 00:39:01 来源:建站知识
❝ 前言:哈喽,我是树酱。文章的源头,是因为在一次交谈中,朋友提到一个需求。需要一批邮箱去做一些"事情",具体是干啥事,留点悬念。如果手动去注册邮箱,只需要解决接收邮件问题。不仅费力而且现在包括像@163等邮箱都还需要手机验证。手动不行,那我们就自己"造"邮箱。一开始觉得挺复杂,毕竟作为一名前端工程师,这个“需求”已经超纲了。问题不大莫慌,看完这篇你就可以打造自己的域名邮箱了
❞
❝ 关于 POP3协议(「Post Office Protocol 3」):协议主要用于支持使用客户端远程管理在服务器上的电子邮件,将电子邮件存储到本地主机下图是阿里云服务器配置安全策略组的规则,在其中加入一条访问规则
❞
❝ 关于 postfix:Postfix 是实现 SMTP 协议的软件,也叫做邮件发送服务器,负责对邮件进行转发,具体的转发规则,就需要我们对postfix的配置进行修改我使用的是阿里云的服务器,首先我们安装邮件服务`postfix'
❞
yum install postfix // 服务器安装
vi /etc/postfix/main.cf
命令行修改以下配置myhostname = email.example.com // 设置系统的主机名mydomain = example.com // 设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分)myorigin = $mydomain // 将发信地址“@”后面的部分设置为域名(非系统主机名)inet_interfaces = all // 接受来自所有网络的请求mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain // 指定发给本地邮件的域名home_mailbox = Maildir/ // 指定用户邮箱目录# 规定邮件最大尺寸为10Mmessage_size_limit = 10485760# 规定收件箱最大容量为1Gmailbox_size_limit = 1073741824# SMTP认证smtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymoussmtpd_sasl_local_domain = $myhostnamesmtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
下图是postfix中主要的参数 postfix check // 检查配置文件是否正确systemctl start postfix //开启postfix服务systemctl enable postfix //设置postfix服务开机启动
完成postfix的配置,接下来我们还需要安装dovecot
❝ 关于 Dovecot:是一款能够为Linux系统提供IMAP和POP3电子邮件服务的开源服务程序,安全性极高,配置简单,执行速度快,而且占用的服务器硬件资源也较少。上文提到POP3/IMAP是从邮件服务器中读取邮件时使用的协议
❞
yum install dovecot // 服务器安装
vi /etc/dovecot/dovecot.conf
命令行修改以下配置protocols = imap pop3 lmtp listen = *, #新添加以下配置 #!include conf.d/10-auth.conf ssl = no disable_plaintext_auth = no mail_location = maildir:~/Maildir
systemctl start dovecot //开启dovecot服务systemctl enable dovecot //置dovecot服务开机启动
完成以上两个服务的配置,你离成功就近一步了!❝ 啊乐同学:postfix与dovecot这两个其实有什么区别?答:postfix主要做发送邮件使用,而dovecot主要做接收使用,两者结合才能完成一个完整的邮件服务
❞
useradd tree/ 新增用户passwd tree // 设置用户密码
❝ 啊乐同学:如果这样我创建100个邮箱用户,岂不是很浪费时间?莫慌,我们写个shell脚本,批量创建就可以解决你这个问题
❞
createUser.sh
内容如下/bash#user.txt 为需要创建的用户的文件passwd.txt为随机生成密码USER_FILE=user.txtpass_FILE=passwd.txtfor user in `cat user.txt`doid $user &> /dev/null #查看用户是否存在if [ $? -eq 0 ]thenecho "The $user already exist"elseuseradd $user #创建用户if [ $? -eq 0 ]thenecho "$user create sucessful"PASSWD=$(echo $RANDOM |md5sum |cut -c 1-8) #随机生成数字echo $PASSWD |passwd --stdin $user &>/dev/null #修改用户密码echo -e "$user/'$PASSWD'/'$(date +%Y%m%d)'" >> $pass_FILE #将用户,密码,日期输入到文件中fifidone
前提需要建立一个user.txt 来维护我们要创建的用户,比如treeshujiang
脚本会根据我们列出的用户名去批量生成用户❝ 阿乐同学:如果我每个新建的邮箱用户,我都得去配置一个客户端去接收邮寄,岂不是很费劲,有没有其他方式?有的,换个角度思考,你可以通过配置邮件转发,将所有邮件接收都转发到某一个用户的邮箱中去,你就可以只在该邮箱查阅邮件(我开始怀疑你的动机,是不是搞什么批量注册!)
❞
virtual_alias_domains = ensbook.com mail.ensbook.comvirtual_alias_maps = hash:/etc/postfix/virtual
完成配置之后,我查阅网上一些资料,需要配置/etc/postfix/virtual
文件,该文件主要用来管理电子邮件转发规则的virtual
的用户实现转发接收的。如果你看得出问题,记得在评论区告诉我❝ 阿乐同学:我接收不到邮箱,又不知道什么问题,如何排查?你可以通过
❞
tail -n /var/log/maillog
查看邮件日志关键词:邮件,服务