搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 1006|回复: 0
收起左侧

[交流] [樹莓派]樹莓派做mail服务器

[复制链接]

该用户从未签到

248

主题

54

好友

2万

积分

第一章

积分
23774
发表于 2013-6-27 22:28:13 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
[img=350,150]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/pimail[1].png[/img]
用raspberry pi做自己的mail服务器,全球可访问
项目地址:http://geekpi.cn/project/projects/geekpi_raspberrypi_mail
讨论区地址:http://geekpi.cn/project/projects/geekpi_raspberrypi_mail/boards
(游客可发帖)
结合dnspod的ddns功能,实现ADSL等宽带拨号动态ip用户也有自己的邮件服务器

私有邮件服务器优点:
  • 不被墙,访问速度快
  • 收件发件速度快,不用服务器排队等待,我和163测试秒发秒收
  • 数据安全,自由备份(邮件目录复制即可)
  • 附件无限空间,可以发送超大附件,回家局域网接收
  • 专业的象征,一个 i@名字.cn 的邮箱名会让别人大吃一惊,和朋友共享一个不错的域名
  • 可以自己添加各种插件,白名单,反垃圾,制定比公共网站更严格的拦截策略
缺点:
Web操作效率较低(rpi CPU性能稍低)—-通过Foxmail , Outlook,Evolution等客户端解决
整合三方工具较落后,webmail方面的,其实真正重视mail的用户不会将精力放在web上太多,还是桌面和手机客户端较多。

使用说明:
用户名:root 密码 geekpi (建议用passwd命令立刻修改)
Mysql数据库:root 密码 geekpi (只开放了127.0.0.1本机的访问权限,很安全不用修改,我图省事没有添加新用户,全部基于这个账号,如要修改需要手动全部修改,较为麻烦)
Web界面工具
http://pi-ip/                roundcubemail最新版0.8.4 中文 webmail,界面很友好,使用简单
http://pi-ip/admin    postfixadmin 最新版2.3.5 中文 管理虚拟域名,新建邮箱等等设置
http://pi-ip/phpfile.php phpfilemanger      在线文件管理工具,我汉化的,方便web下修改文件上传该权限什么的
http://pi-ip/phpmyadmin/   phpMyAdmin 最新版,在线管理mysql数据库,没什么可说的
(暂时用的80端口,以后考虑用443端口https协议,避免被封80端口的玩家远程不方便访问的问题)

系统基于极度精简版系统 ,raspbian 10-28适合256M和512M,配置参数和geekpi-lite-256M-512M 一样,所有软件已经更新到最新,安装的额外软件有

apt-get install postfix postfix-mysql dovecot-pop3d dovecot-imapd dovecot-mysql mysql-server lighttpd php5 php5-cli php5-cgi php5-imap php5-mysql php5-mcrypt php5-intl openssl


由于使用了mysql完整的5.5 server/client以及lighttpd + php5-fascgi全支持,占用了较多的资源,所有的web应用缓存后大致需要150M以上的内存,可以再自己加个小的web应用什么的,我保留了一个squeezeslave播放器程序在里面,运行后可以连接到远程logitech media server,实现无线音乐电台功能,推广使用。
可以在后面的详细文章中看到以下解答
  • 第一步?
  • 如何通过域名访问动态ip上的邮件服务?
  • 如何添加自己的域名?
  • 如何添加邮箱?
  • 如何配置手机或桌面客户端?
First Setp
第一步很重要,不是说第一拿来就开始用了,先要让邮件服务器的25号端口让外部可访问,这样邮件才能和外网相互传递,否则这就是一个内网邮件服务器,一般人没这么用的吧。
第一就是确定pi的ip地址,然后固定下来,通过修改/etc/network/interfaces,将eth0部分改为
auto eth0
iface eth0 inet static
address 192.168.111.80
netmask 255.255.255.0
gateway 192.168.111.1
dns-nameservers 8.8.8.8 192.168.111.1
这样就固定到192.168.111.80的ip地址了,然后登陆家里的拨号路由器,修改地址映射,将外网的25号端口映射到80 ip的25号端口
[img=600,362]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver5-600x362[1].jpg[/img]
同时建议使用dnspod的ddns功能,将域名指向你拨号获得的ip地址,修改我在/root/目录下提供的 dnspod.py程序,搜索我博客上的dnspod查找使用方法,
Python dnspod.py &
让他后台运行起来
然后配置你的域名的mx记录,mx记录专门对应于邮件传输协议的查找目标,我的记录
[img=600,309]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver1-600x309[1].jpg[/img]
你们如果主域名有其他用途,可以建个二级域名,如mail.geekpi.cn,同时mx记录指向这个二级域名,那么邮箱地址就是 name@mail.geekpi.cn
同时建议将smtp pop imap这三个二级域名地址也指向这个邮件服务器动态ip的记录,方便客户端工具配置使用,使用pop3需要开放服务器的995端口,imap需要993端口,和前面的25号端口一样在家里的路由器上配置
第一步准备工作做好后,就可以开始使用这个邮件服务器了。
设置分三个步骤
—————————–
1/3 新建域名管理账号
http://pi-ip/admin/setup.php
Setup password 输入 “geekpi
新建自己的管理员账号,如 geekpi@163.com 密码 geekpi
之后这个页面就没用了,为了安全起见,可以删除这个页面,位置在/var/www/admin/setup.php 可以通过phpfile.php工具删除。
[img=600,298]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver4-600x298[1].jpg[/img]
——————————–
2/3 新建虚拟域名,邮箱
http://pi-ip/admin/
用刚才建立的管理员账号 登陆后新建域名,再新建邮箱
可以管理多个虚拟域名,把 domain1.cn / domain2.com.cn / mail.domain3.net 等等ip地址或mx.域名记录指向拨号获得的动态ip即可,当然25端口需要通过NAT让外网可访问。
[img=522,242]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver2[1].jpg[/img]
[img=456,316]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver3[1].jpg[/img]
——————————-
3/3 登陆邮箱
http://pi-ip/
第一次登陆会初始化邮箱账号配置信息,包括文件夹信息。不想使用web可以直接用pop3/imap客户端工具直接登陆即可
登陆界面下面的红色提醒是要求你删除installer目录,这个目录是配置webmail后台准备的,如果没这方面的需要,可以直接删除这个目录,位置/var/www/installer ,同样建议用phpfile.php来删除

客户端 使用说明
我这里以Android手机的电子邮件 程序和windows里的Foxmail软件为例
先说Android手机

输入账号密码后,选择imap,启用imap的SSL/TLS认证(pop3类似)

smtp选择关闭安全认证,smtp由于postfix服务器设置了很多安全措施,不需要启用安全认证以保证兼容性和递送速度

最后确认即可

Foxmail的设置也类似
[img=497,322]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver6[1].jpg[/img]
只需要选择imap/pop3之后启用ssl安全连接
[img=505,322]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/mailserver7[1].jpg[/img]
完成后即可使用

额外工具说明
phpfile.php 这个是开源软件,我汉化的,非常好用,在很多虚拟站点服务器都用它来管理文件,修改代码
phpmyadmin Mysql管理工具,导入导出SQL,备份数据库什么的很好用
dnspod.py  dnspod的python脚本,修改里面的参数为自己的域名信息,加入/etc/rc.local中随系统启动即可时时刻刻保持你的域名解析到拨号获得的动态ip
squeezeslave  配合logitech media server使用的播放器程序,在命令行下运行 “squeezeslave 192.168.111.2” ( LMS的ip地址) 大家可以装个windows版的LMS试试,推广pi用户使用


总结与Todo list
服务器启动完成后一个是postfix和dovecot的服务程序,占用资源很低,合计不超过40M内存,能容纳100人以内的用户使用(如果要大范围使用需要提高mysql的默认连接数100的设置),另外就是mysql数据库,占用40多M内存,两者的CPU资源消耗都不多,所以如果不用web 应用,可以将自己的三方应用加入其中,哪怕是XBMC融合进来都行(256M的估计困难,512M用户可考虑),如果控制内存占用后,就可以划分 128M+128M以合并视频媒体播放器XBMC功能,物尽其用。邮件服务器其实源于对个性域名的需求产生的
[img=600,379]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/dns-600x379[1].jpg[/img]
8元的域名,可以一次注册10年,可惜我的名字太普通,被抢注了,大家有儿子女儿的抢注一个,送给她,说不定以后就是一笔不小的虚拟财富。个人也可以借此拥有个性的域名,反正我认为每个Geek都应该拥有独立域名,那么私有邮件服务器也就自然不可少了,树莓派上运行效果很好,稳定,花费也少,一年 20元电费而已。
如果大家支持,而且需要 后续改进方向:
  • 修改http为https,放弃80端口,使用443端口,解决一些地区拨号的80端口被封的问题
  • 精简mysql + http 为 sqlite + python脚本,大幅降低资源消耗,理论可以控制在60M内存占用。

备注:
无法发送邮件至hotmail / gmail / sina 邮箱,收取邮件无问题,项目主体功能不受影响。
在163/QQ/21cn/sohu未出现,双向秒发秒收
原因:
反向解析的ip地址没有被google/sina/hotmail的数据库收录,同时动态ip地址无法设置PRT记录,ISP商方面只对固定ip提供此项服务,此问题暂无解决办法。因此避免使用此类使用了SMTP PRT记录表的邮件服务器商。建议此邮件服务器只作为收件用,发邮件依然使用公共邮箱,如163/QQ

另外建议启用公共邮箱的转发功能,将邮件自动转发至私有邮件服务器,这样可以快速收取外部邮件的同时,对外提供公共邮箱地址,遭遇垃圾邮件袭击后停止转发即可。
[img=350,150]http://note.wiz.cn/unzip/ea951da4-5237-11e2-a9b7-907ab51b66ae/437b52a5-69f6-48ba-bf91-1f07b9367f03.1368/index_files/pimail[1].png[/img]
新版本解决了底包精简系统存在的512M版本上ip无法分配的问题 Issue #12
同时加入owncloud 4.5.5
http://pi-ip/owncloud
dnspod.py更新至beta版
http://geekpi.cn/project/projects/python_dnspod/wiki/使用方法详细说明
关于owncloud个人云,可以搜本blog的介绍,以及访问论坛 http://geekpi.cn/dz/forum.php?mod=forumdisplay&fid=52 参与讨论
——————–
至此 mail server版等于
raspberry pi lite 精简系统
+ lighttpd (80 httpd服务器)
+  postfix邮件服务器
+ dovecot pop3/imap登陆管理器
+ mysql server/client
+ phpMyAdmin mysql管理
+ roundcubemail + postfixadmin 网页版邮件管理
+ dnspod.py 动态域名dnspod客户端
+ owncloud 个人云,文件,日历,任务,PIM数据服务器
有问题到mail 服务器项目中提,或者到owncloud论坛讨论区提
基本功能使用查阅压缩包里的readme.html或者看 http://geekpi.cn/blog/2012/11/2007
下载地址:
百度盘 http://pan.baidu.com/share/link?shareid=176388&uk=1412008571
来源: <http://geekpi.cn/blog/2013/01/2169>





                               
登录/注册后可看大图
该贴已经同步到 千叶-堕天圣黑猫的微博
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-5-1 13:07 , Processed in 0.061860 second(s), 10 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表