从0搭建一个邮件服务器(用于邮件推送以及邮件群发业务)

本文讲述如何方便快捷搭建一个邮件服务器,由于本人论文以及实习公司需要,将会言简意赅的搭建一个邮件服务器来实现所需功能,以下是实现效果图,本文略接地气请忽略,由于是第一次写文章,所有不懂的细节均可私聊作者

图1、邮件群发

图2、邮件推送(每日推送当地实时天气)

这里需要注意的是,注意看我的邮箱名称是 day_day_up_up@taxwhale.com, 这个名词不论是@后面的名称也好,都是可以随便取的,对方根本不知道这是谁的邮箱

准备工具:
1、一台服务器
(注意事项:本文用的是第三方服务器,是开放25端口的金山云服务器,如果是阿里巴巴腾讯的云服务器,需要申请25端口解封,一般审核很困难,且不能群发垃圾邮件,否则云服务器会被封禁,具体还有哪些细则可以私聊作者)

我用的是金山云服务器,因为金山云没有限制25端口,这决定了你是否可以自己创建邮箱账号来发送邮件,如果你使用465端口,那么你只能做邮件转发业务

实现工作1:搭建邮件服务器

1、给云服务器安装邮件服务器,这里从简化,本人服务器直接安装的EwoMail服务器,具体可以参照官网标准文档配置,只需几行代码便可安装成功,另外需要在服务器上搭建Python环境,还是从简化,用最简单的配置方式,以下是代码

这边按照官网教程安装好EwoMail服务器后,需要再次按照官网教程登陆web邮箱管理界面任意创建一个邮箱账号密码,在这之前,必须按照官网教程需要添加一个邮箱域名

接下来需要给服务器安装Python环境

最新的EPEL 7仓库提供了Python3(python 3.6)的安装源,如果你使用CentOS7或更新的版本的系统你也可以按照下面的步骤很轻松的从EPEL仓库安装。
安装最新版本的EPEL

sudo yum install epel-release

用yum安装python 3.6:

sudo yum install python36

注意:上面的安装方法并未安装pip和setuptools,如果你要安装这两个库可以使用下面的命令:

curl -O https://bootstrap.pypa.io/get-pip.py
sudo /usr/bin/python3.6 get-pip.py

云服务器搭建大功告成了,搭建一台自己的邮件服务器只需要不到20行代码

实现工作2:实现邮件推送业务:

这里说白了其实就是Python代码实现,简单逻辑就是用内置smtplib模块登陆自己搭建好的邮件服务器,然后requests请求实时更新的当地天气,然后发给指定的邮箱,直接上代码吧

#-*- coding: utf-8 -*-
"""
Created on Fri Apr 19 10:40:47 2019@author: YEXIAOLUN
"""
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import requests
import json
class SMTPS():def __init__(self):self.account='day_day_up_up@123456.com'self.password='root123456.'self.SMTP=smtplib.SMTP('123.45.678.9',25)#这里的服务器链接以及账号密码本人也做了替换,换成自己的云服务器ip和账号密码就行self.SMTP.login(self.account,self.password)def get_weather(self,city):url='https://www.tianqiapi.com/api?version=v6&appid=1234567&appsecret=7iaDovxG&city='+str(city)#这里的appid本人进行了替换,这个只需要在天气API中自己申请一个就行res=requests.get(url)jsons=json.loads(res.content)return jsonsdef send(self,mails):mail_msg = """<p>早上好 {0} 今天也要保持好心情❤❤❤❤❤</p><p><a href="#">这是我的邮箱 yexiaolun@foxmail.com</a></p><p>{1} 今日天气:</p><p>更新时间:{2}</p><p>天气情况:{3}</p><p>实时温度:{4}</p><p>高温:{5}</p><p>低温:{6}</p><p>风向:{7}</p><p>风速:{8}</p><p>湿度:{9}</p><p>能见度:{10}</p><p>气压hPa:{11}</p><p>最低温:{12}</p><p> 空气质量:{13}</p><p> 空气质量等级:{14}</p><p> 空气质量描述:{15}</p>"""for m in mails.keys():jsons=self.get_weather(mails[m])send=[m]mail_msg=mail_msg.format(m.split('@')[0],mails[m],jsons['update_time'],'',jsons['tem'],jsons['tem1'],jsons['tem1'],jsons['win'],jsons['win_speed'],jsons['win_meter'],jsons['humidity'],jsons['visibility'],jsons['pressure'],jsons['air'],jsons['air_level'],jsons['air_tips'])subject = '早上好'message = MIMEText(mail_msg, 'html', 'utf-8')message['Subject'] = Header(subject, 'utf-8')self.SMTP.sendmail(self.account,send,message.as_string())if __name__ == '__main__':mails={'1977336966@qq.com':'上饶','n17189895796@163.com':'温州','yexiaolun@foxmail.com':'杭州','854423358@qq.com':'杭州'}s=SMTPS()s.send(mails)

能实现邮件推送想要实现邮件群发也不难,适当修改代码就行

实现工作3:部署代码到服务器

这一部其实非常简单,就是复制下代码到服务器,然后设个定时设置,每日8点执行代码,直接上代码吧

1、复制代码到服务器文件为mail.py,这里可以尝试运行一下:

#因为之前安装的是python3.6,所以用python3.6运行
python3.6 mail.py

2、这边可能会运行requests报错,我们用镜像源快速安装一下就行

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

3、安装 crontabs服务并设置开机自启:

yum install crontabs
systemctl enable crond
systemctl start crond

4、配置定时规则

crontab -e //编辑某个用户的cron服务

基本格式,

# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
定时任务的每段为:分,时,日,月,周,用户,命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令*:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分
-:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令
,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令
/n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次

5、每日8点执行代码的代码

00 08 * * * python3.6 /mail.py

(附上我参考的资料链接)
https://www.cnblogs.com/cosiray/p/9946401.html(centos安装python的三种方法)
https://www.cnblogs.com/p0st/p/9482167.html(centos定时任务)

作者本人第一次写文章,很多技术细节可能不是那么详细,非常潦草,文章中更多的是在于实现的方法,更多技术的理解可以直接找我本人,我会非常热情的解答你的问题,谢谢观看

从0搭建一个邮件服务器(用于邮件推送以及邮件群发业务)相关推荐

  1. 在自己的服务器上搭建git仓库服务器(本地推送到远程仓库、远程仓库推送到本地)

    文章目录 Git服务器 一.安装Git 二.配置Git 1.创建Git用户 2.仓库初始化 三.使用仓库 1.本地推送到远程仓库 2.远程仓库推送到本地 总结 Git服务器 一般,我们编写项目,都会保 ...

  2. 邮件服务器imap有推送吗,为什么我的邮件服务器支持imap协议还收不到邮件内容...

    满意答案 qk2523 2017.04.05 采纳率:48%    等级:7 已帮助:163人 支持imap协议和能不能收到邮件没有什么关系. 1.使用Web方式可以正常接收邮件,但使用Outlook ...

  3. docker使用Inbucket搭建邮件服务器用于接受邮件

    docker使用Inbucket搭建邮件服务器用于接受邮件 很多账号在注册的时候,需要邮箱进行验证,之后找回密码等需要.但是它们又有可能给你发垃圾邮件,要是有一个邮箱服务器能接收自己域名下所有的邮件地 ...

  4. python打造流媒体服务器_使用Flask搭建一个流媒体服务器

    摘要 收到前不久订阅的PythonWeekly发过来的一个邮件通知,由Miguel写的一篇介绍如何使用Flask搭建一个流媒体服务器的文章,思路很新颖也很有意思.你可以点击这里阅读英文原文.或者跟随本 ...

  5. 使用Flask搭建一个流媒体服务器

    摘要 收到前不久订阅的PythonWeekly发过来的一个邮件通知,由Miguel写的一篇介绍如何使用Flask搭建一个流媒体服务器的文章,思路很新颖也很有意思.你可以点击这里阅读英文原文.或者跟随本 ...

  6. 【React进阶-1】从0搭建一个完整的React项目(入门篇)

    这篇文章带领大家从零开始手动撸一个React项目的基础框架,集成React全家桶.万字长文,请各位有足够的时间时再来阅读和学习. 概述 平时工作中一直在用React提供的脚手架工具搭建React项目, ...

  7. [转]免费邮件服务器hMailServer搭配SpamAssassin过滤垃圾邮件:安装和设置

    [转]免费邮件服务器hMailServer搭配SpamAssassin过滤垃圾邮件:安装和设置 (转自http://dagai.net/archives/838) 为了解决垃圾信泛滥的状况,这两天「跨 ...

  8. 从 0 搭建一个工业级推荐系统

    推荐系统从来没像现在这样,影响着我们的生活.当你上网购物时,天猫.京东会为你推荐商品:想了解资讯,头条.知乎会为你准备感兴趣的新闻和知识:想消遣放松,抖音.快手会为你奉上让你欲罢不能的短视频. 而驱动 ...

  9. 利用IPV6搭建一个家庭服务器

    1.1. 序言 众所周知,中国移动宽带没有给家庭用户分配一个ipv4的公网账号,但是会给一个动态的公网IPV6账号,我们接下来就用这个IPV6搭建一个家庭服务器了 1.2. 查看公网IPV6信息 1. ...

  10. 如何搭建一个数据库服务器平台

    原 如何搭建一个数据库服务器平台https://blog.csdn.net/tianlesoftware/article/details/5602291版权声明: https://blog.csdn. ...

最新文章

  1. 设备树 xlnx-phy 使用
  2. windows磁盘分区
  3. 《CCNP TSHOOT 300-135认证考试指南》——6.4节SVI故障检测与排除
  4. JAVA - package与import解析(一)
  5. Jmeter之线程组详解
  6. 为什么「道理都懂,然而执行力差」的现象如此普遍?
  7. 麻将游戏-协议实现 笔记
  8. macOS Docker 上安装、启动 MySQL
  9. 一文掌握Python集合的语法与应用
  10. leetcode题库572 -- 另一个树的子树
  11. 冬雷快递单打印软件anyPrint
  12. Java 正则表达式匹配规则
  13. winhex数据恢复linux,winhex数据恢复教程(非常巨大,内容丰富)
  14. 株洲c语言培训机构,株洲好就业的学c语言程序设计,计算机专业地址
  15. Hello Juejin
  16. Simulink的S函数仿真一阶RL和二阶RLC电路电路
  17. 什么是编程?什么是编程语言?
  18. 智搜荣获用友·华为云杯开发者大赛“优秀商业应用奖”
  19. MAC OS 上好用的文本编辑器除了Sublime Text和BBEdit还有这些好用的推荐一下。
  20. 大学物理静电场部分公式

热门文章

  1. 【图像检测-边缘检测】基于PCNN实现图像边缘提取附matlab代码
  2. 在Oracle Data Guard环境中的RMAN备份和还原
  3. wget连接指定端口_WGET常用命令 WGET下载HTTPS链接
  4. wget下载太慢问题
  5. BeyondCompare 源代码比对解决方案
  6. FGSM对抗样本算法实现
  7. 苹果cms模板 短视8.1旗舰版
  8. Kali安装网易云音乐
  9. 双线性的定义以及他的性质
  10. API安全风险与防范