array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 centos 邮件服务 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25 收邮件协议:pop3 端口110 iredmail安装配置 使用邮箱系统 第三十一节课 - 爱码网
MYSQLZOUQI

centos   邮件服务  腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25  收邮件协议:pop3 端口110  iredmail安装配置  使用邮箱系统  第三十一节课

 

 

常见企业邮箱:腾讯企业邮箱、263企业邮箱(网易)

 

iRedMail的服务器在国外,最近的也在日本,所以最好买国外vps来搭建iRedMail,老师演示的时候根本下载不了

 

上半节课

两种解决方案
腾讯企业邮箱(免费)
使用iRedmail 需要有公网的centos主机



 

下半节课

发邮件协议:smtp 端口25
收邮件协议:pop3 端口110
收邮件协议:imap 优于pop

iredmail安装配置
使用邮箱系统

 

 

 

1. 两种解决方案:
(1)腾讯企业邮箱(免费)50人限制 http://exmail.qq.com/
需要有自己的域名,设置mx记录


(2) 使用iRedmail 需要有公网的centos主机

 

2. 基础知识
发邮件协议:smtp(Simple Mail Transfer Protocol) 端口25
收邮件协议:pop3(Post Office Protocol 3 ) 端口110
收邮件协议:imap, 优于pop3,可以根据用户需求指定下载删除邮件,而不是下载全部,端口143

MTA: mail transfer agent 邮件传输代理,发邮件的(sendmail,postfix)
MRA: mail retravial agent 邮件检索代理,收邮件(dovecot)
MDA: mail delivery agent 邮件投递代理,帮助投递邮件(maildrop)
MUA: mail user agent 邮件用户代理,个人主机上的收发代理软件(outlook,foxmail)

 

 

3. iredmail安装配置
iRedMail 为一个开源项目,基于GPL(v2)协议发布。官网 www.iredmail.org (国内不能访问),可以通过www.iredmail.com访问。

iRedMail 核心组件及其对应的功能:
Postfix: SMTP 服务器
Dovecot: POP3/IMAP/Managesieve 服务器
Apache: Web 服务器
MySQL: 用于存储其它程序的数据,也可用于存储邮件帐号。
OpenLDAP: 用于存储邮件帐号。
Policyd: Postfix policy server
Amavisd: 提供 DKIM 签名及校验、SPF校验、为外发邮件添加“免责声明”内容,并调用 SpamAssassin 做基于邮件内容的发垃圾扫描,调用 ClamAV 做邮件病毒扫描。
Roundcube: Webmail
Awstats: 用于分析 Apache 和 Postfix 日志文件,并生成简单的图表。 awstats 分析 Nginx访问日志 http://www.ibm.com/developerworks/cn/linux/l-cn-awstats-nginx/
Fail2ban: 扫描各种日志文件,发现多次密码错误等情况时可自动封禁对方 IP 一段时间。用于保证服务器安全。
iRedAdmin:基于 web 的邮件帐号管理程序。

4. iredmail安装
准备工作:
hostname mail.lishiming.net
vim /etc/hosts //加入
127.0.0.1 mail.lishiming.net
106.187.51.47 www.iredmail.org iredmail.org
配置DNS解析:
MX记录 mail.lishiming.net
A 记录 把mail.lishiming.net 指向一个IP,这个IP就是我们要做邮件服务器的ip

下载iRedMail
wget http://www.iredmail.com/iRedMail-0.9.1.tar.bz2 (当前最新版本为0.9.1,以后会变,请到http://www.iredmail.com/download.html 下载最新版本)

若你的服务器为国内服务器,那么在安装前需要做一些处理:
tar jxvf iRedMail-0.9.1.tar.bz2
cd iRedMail-0.9.1/pkgs
vi get_all.sh // 把 https://mirrors.fedoraproject.org 改为 http://mirrors.fedoraproject.org

sed -i \'s/iredmail.org/106.187.51.47/g\' get_all.sh
cd ..; sh iRedMail.sh //这个过程需要很久,耐心等待有一步骤是问我们是否打开防火墙,建议大家不要开启:
Would you like to use firewall rules provided by iRedMail now?
< Question > File: /etc/sysconfig/iptables, with SSHD port: 22. [Y|n]n

5. 使用邮箱系统
安装完后,看下这些服务是否启动: 使用命令pstree
for s in httpd iredapd amavisd clamd postfix dovecot cbpolicyd spamassassin clamd.amavisd saslauthd fail2ban; do /etc/init.d/$s restart; done

安装完后,登陆iredadmin 创建用户,并登录 Roundcube系统测试收发邮件。在该步骤中,你可能会遇到这样的问题:发邮件正常,收邮件非常慢,需要等十分钟之久,查看maillog发现这样的提示:Recipient address rejected: Greylisting in effect, please come back later。这是因为Policyd服务造成的,解决办法:
vim /etc/policyd/cluebringer.conf //找到 Greylisting这个模块,在前面加#
然后重启dovecot/postfix/cbpolicyd服务 : service dovecot restart; service postfix restart; service cbpolicyd restart

参考文档: http://wiki.ubuntu.org.cn/IRedMail
扩展学习:
电子邮件原理 http://www.cnblogs.com/qiubole/archive/2007/08/22/865209.html
电子邮件发送原理以及简易实现 http://blog.csdn.net/lishuhuakai/article/details/27503503
postfix配置详解 http://os.51cto.com/art/201101/243430.htm
dovecot 启动报错 http://www.apelearn.com/bbs/thread-7397-1-1.html

 

 

foxmail

 f

 

f

 

f

 

f

分类:

技术点:

相关文章: