导航新进会员
在线用户目前共有 0 位用户和 32 位游客在线。
|
用 esmtp 通过 Gmail 邮局进行转发系统邮件 v0.1b (正在修正)作者:北南南北 目录: 1 esmtp简介; 2 本文应用范围; 3 安装 esmpt 4 配置esmtp; 4.1 创建用户; 4.2 包装sendmail 4.3 Google企业邮局和Gmail说明; 4.4 配置esmtp; 5 关于本文; 6 参考文档; 7 相关文档;
1 esmtp 简介;esmtp 是一款邮件转发程序,原理是模拟sendmail行为进行系统邮件转发。应用领域是服务器端,当我们没用专用的邮件服务器,如何把系统邮件转发出来。 2 本文应用范围;写这个文章的前提是咱们没有专用的邮件服务器,并且为了减轻服务器压力,服务器端并没有做邮件服务器,并且还要把系统邮件转发出去。应用主要有Web程序,有时Web用户创建,服务器会把密码发到用户信箱,或用户找回密码 …… 还有服务器的一些管理日志、崩溃信息等,也需要发送到管理员信箱。 举例说明:LinuxSir.org 只有一台服务器,而且压力非常大。所以在这台服务器上不可能做邮件服务器。但系统邮件必须转发出去,因为上面有linuxsir.org的文章管理系统和论坛系统,因为用户需要认证。服务器要为用户发送密码等方面的邮件。所以必须有一个邮局系统来处理这些事。但linuxsir.org又不能在这台服务器上架邮局,所以就要想办法把系统邮件转发出去,让其它邮局来处理。 这样解释或许明白点吧。 3 安装 esmpt如果您的发行版是 slackware, 您可以到 http://www.slackbuilds.org 上取回编译脚本来安装libesmtp和 esmtp,libestmp是esmtp的库文件。您可以自己源码包make安装; 对于其它发行版来说,都可以通过源码包来make安装; 对于常用发行版,可以用发行版所采用的软件包管理工具来安装,不同的发行版有不同的工具,其实大同小异; [root@linuxsir:beinan]$ sudo apt-get install esmtp 注:在debian、ubuntu 等在线安装方法;安装完成后,esmtp 会伪装成sendmail来发信。我们查看sendmail可执行文件得知; # ls -la /usr/sbin/sendmail4 配置esmtp;在安装好后,根据esmtp 文档,写一下 esmtprc 就可以用了,文件放在/etc目录下,或放在apache守护程序的拥有者的家目录下(一般情况下,就是apache 用户来执行,如果您自己编译和修改了其它用户,就要用其它用户),当放在apache的家目录下,要创建一个.esmtp 的文件。但经过测试并非如此,并不能把信转出去。因为apache用户由于环境变量的问题,不适合esmtp转信的环境;所以我们必须包装sendmail。 4.1 创建用户;因为esmtp也要通用一个用户来发信,所以我们必须创建一个用户,可以用这个用户来专门发送系统邮件;您可以通过adduser 命令来添加用户。比如创建一个用户linuxsir的UID是5505,用户组的GID也是5505,家目录位于 /home/linuxsir目录; # groupadd -g 5505 linuxsir我们再来查看一下是用户是否创建成功,我们要查看linuxsir 这个ID,以及/etc/passwd配置文件; #id linuxsir4.2包装sendmail 因为apache用户由于环境变量的问题,不适合esmtp转信的环境;所以我们必须包装sendmail。原理就是通过su 命令 切换到linuxsir这个用户下,通过这个用户来发邮件; 打开一个终端,把下面的内容贴到终端里即可; 本脚本由传说中的花花同学大力协助,在此感谢之中 ;) ; #!/bin/sh -x注:setreuid 和setregid 是分别设置UID和GID的,要根据自己所创建的用户的UID和GID来添写这个值,因为我创建的用户linuxsir的UID和GID都是5505 ,所以就写5505;/home/linuxsir是linuxsir这个用户的家目录,也是根据你所创建用户的家目录来设置,这个也是要你根据情况来修改; 4.3 Google企业邮局和Gmail说明;Gmail是全球最好的邮局系统,我们可以通过Gmail来帮助我们搭建企业级应用。我们就可以不必自己单独做邮件服务器了。一切应用都交给Google来处理。我们可以在企业邮局上为用户创建信箱 …… 优势多多,试试就知道了; 您可以通过 http://www.google.com/a/ 来申请属于自己的邮局系统。当然您得有一个域名,并且您有域名管理权,能自己设置DNS解析; 比如 LinuxSir.Org ,要在域名提供商的DNS上做解析,具体流程是: 确认 linuxsir.org 的所有权,要根据您创建邮局系统时的提示做;要在 linuxsir.org 的WWW服务器端,创建一个文件,要能访问的到。然后让Google来验证通过; 然后在域名提供商所提供的域名DNS管理界面,清空所有MX记录,并添加下面的MX记录;
因为 Google 的CNAME服务器 ghs.google.com 被封掉了,所以我们可以省略这一过程。但为了访问方便,我们可以用三级域名跳转的办法。 您可以添加一个三级域名指向到Gmail上的您的企业邮局,比如linuxsir.org 在Google上的邮局地址是 http://mail.google.com/a/linuxsir.org ,那我们就要做一个 http://mail.linuxsir.org 的域名跳转到 http://mail.google.com/a/linuxsir.org 。 纵观全球互联网企业所提供的邮箱或邮局,没有一家能和Google所提供的相比。优势是大容量、高效、安全、稳定 …… ,我们把一切赞美的词都给Google都不为过 …… 对不对? 我们申请Google的信箱也好,还是Google的邮局也罢,目的就是让esmtp把服务器系统上的邮件转发出去。通过谁转发更可靠?就是Google。如果您想以 beinan@linuxsir.org 来转信,就要申请Google邮局。如果只是用一个beinan@gmail.com 的信箱来把服务器系统的信转发出去,就不必申请邮局。 4.4 配置esmtp;我们还是接着前面的例子来说明如何配置esmtp,首先我们在Google申请了自己的信箱或邮局,这是前提。 如果您在Google上申请了企业邮局,要在里面创建一个信箱,比如我想用linuxsir.org@linuxsir.org 来转信,就要在linuxsir.org 的邮局上创建一个linuxsir.org 为用户名的信箱。设置好密码,以linuxsir.org 用户名登录后,要在设置中把pop服务打开 …… 接着我们在服务器端,在linuxsir用户的家目录下创建一个.esmtprc 的文件,内容大体如下; identity linuxsir.org@linuxsir.org 注:用户名,要完整的。Gmail也大体如此,自己试试;如果你有专用的邮件服务器,配置文件也大体差不多的,自己尝试一下; 验证是否成功,请用mailx程序测试,如果linuxsir.org@linuxsir.org 收到邮件,则表示成功,否则失败~ #mailx linuxsir.org@linuxsir.org注:mailx linuxsir.org@linuxsir.org 后按回车,在Subject:后面写上主题,然后再按回车,这样就可以写的信的内容了。写完后,按ctrl+d来发信 …… 发送后,到linuxsir.org@linuxsir.org 去收信 …… 值得注意的是,Gmail可能会把信扔到垃圾箱中,这也算把信收到了…… 5 关于本文;本文是在LinuxSir.Org 服务器资源紧张的情况下,迫不得已才采用的办法。一直以为都是架邮件服务器来解决。先后用过sendmail、qmail、postfix …… 而且邮件服务器会占用大量服务器资源,在无奈之中,才想到由第三方邮件服务器系统…… 在这之中,经历了太多的周折和痛苦…… 在2007年05月的时候,windrose兄说Gmail 的企业邮局可以申请,他就申请了一个,并把LinuxSir.Org 的邮局迁到Google上了;但服务器系统邮件没办法发送。在这次迁移服务器IDC的时候,把系统全面升级,又想到如何把邮件转发了去。于是想到了esmtp 。 本文得到花花同学的大力帮助,在此感谢! 6 参考文档;esmtp 的官方文档,请参见: http://esmtp.sourceforge.net/ 7 相关文档; |
最新评论
|
re:用 esmtp 通过 Gmail 邮局进行转发系统邮件------RHEL下安装遇到的问题
在RHEL4下如何安装esmtp呢?
安装过程
#####download libesmtp和esmtp源码包
##### 1.装libesmtp
tar jxvf libesmtp-1.0.4.tar.bz2
cd libesmtp-1.0.4
./configure -prefix /usr/local/libesmtp
make
make install
##### 2.安装esmtp时有问题了
tar jxvf esmtp-0.6.0.tar.bz2
cd esmtp-0.6.0
./configure -prefix /usr/local/esmtp --with-libesmtp=/usr/local/libesmtp
.
.
.
checking libesmtp.h usability... yes
checking libesmtp.h presence... yes
checking for libesmtp.h... yes
checking for libESMTP... no
configure: error: libESMTP library not found
[root@test esmtp-0.6.0]#
libesmtp.h和libESMTP是两个不同的文件吗?那后者是有什么包安装的呢?还是当初编译libesmtp的时候要加什么参数?还是在编译esmtp的时候要加参数?一开始没有加./configure -prefix /usr/local/esmtp --with-libesmtp=/usr/local/libesmtp中的--with-libesmtp=/usr/local/libesmtp
时 checking for libesmtp.h... yes 这步都通过不了,加完后又出现了下一个错误,在google上搜libESMTP得到的全是关于libesmtp的信息
好像论坛里还有其他兄弟也遇到了这样的问题,南北老大,能帮忙看一下吗?
libESMTP这个文件如何让esmtp的安装程序认出来呢?
re:re:用 esmtp 通过 Gmail 邮局进行转发系统邮件------RHEL下安装遇到的问题
安装过程
#####download libesmtp和esmtp源码包
##### 1.装libesmtp
tar jxvf libesmtp-1.0.4.tar.bz2
cd libesmtp-1.0.4
./configure -prefix /usr/local/libesmtp
make
make install
把这个改为 ./configure ,你后面加了个/usr/local/libesmtp是画蛇添足
##### 2.安装esmtp时有问题了
tar jxvf esmtp-0.6.0.tar.bz2
cd esmtp-0.6.0
./configure -prefix /usr/local/esmtp --with-libesmtp=/usr/local/libesmtp 这句也是直接./configure
北南兄,"4.1
北南兄,"4.1 创建用户"中有个有个地方有错:
#id beinanlinux
uid=5505(beinanlinux) gid=5505(beinanlinux) groups=5505(beinanlinux)
应改为:
#id linuxsir
uid=5505(linuxsir) gid=5505(linuxsir) groups=5505(linuxsir)
谢谢,北南兄的精彩教程.
lxybhbh
谢谢~~
我会重新排版一下。
谢谢兄弟~
++++++++++++++++++++++++++++++++
自由与梦想齐飞,欢迎光临LinuxSir.Org;
开源传万世,因有我参与;
申请google的企业邮件服务遇到问题了
申请的时候,google说中国不支持此服务。请问“北南南北”是怎么申请的呀?谢谢!
遇到什么问题呢?我可以帮助你解决问题
您好,我在北南兄,这边看到你说在使用企业邮局 有遇到问题?那是遇到什么问题呢? 提出来大家分享一下,或者说,我也是可以帮助 你解决问题。我了联系方式:0591-28308054 28308062
简单~
国家选US,行业:教育
祝兄弟好运。
北南 呈上
+++++++++++++++++++++++++++++++++
自由与梦想齐飞,欢迎光临LinuxSir.Org;
开源传万世,因有我参与;
原来如此
谢谢!可惜我不是用于教育的。还是不申请了。
用邮局有什么好处?
没明白这个,直接用 linuxsir@gmail.com 发账号申请确认信有什么问题吗?
另外,有没有试验过 msmtp 呢?貌似这个开发比 esmtp 活跃些,而且有个
本地邮件队列的实现,这样可以避免客户端等待 msmtp 真正联网发信,也可以
在暂时连不上 gmail 服务器时暂存邮件,看 esmtp 主页上的 news 似乎它正在
开发这个功能。msmtp 配置 gmail 也很简单(我用的 ubuntu dapper 自带的
msmtp):
# Set default values for all following accounts.
defaults
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
timeout 30
account 126
domain 126.com
host smtp.126.com
from xxx@126.com
tls off
auth login
user xxx
password yyyyy
account gmail
domain gmail.com
host smtp.gmail.com
from xxxx@gmail.com
auth login
port 587
user xxxx@gmail.com
password yyyyy
# Set a default account
account default : gmail
在 ~/.mailrc 中写入
set sendmail="/usr/bin/msmtp"
就可以让 mail 命令使用 msmtp 发送,用 msmtp -a 126 和
msmtp -a gmail 可以选择用哪个 smtp 服务器。
msmtp 和 esmtp 的差别?
用过msmtp,但没用过 esmtp。不管怎么说谢谢兄台的好文了。看过以后觉得这2个还是有点差异啊。下面说下我的看法,可能有错的。
北南的意思好像是,想用 linuxsir@linuxsir.org 为名,对所有用户发邮件。但用户的回信将会发送至 beinan@gmail.com。这样方便管理员看系统信息和用户反馈。说穿了,就好像是把 linuxsir@linuxsir.org 作为 beinan@gmail.com 的别名。
这种说法不知对否?望指点一下。
如果真是这样的话,用 msmtp 就没办法了。msmtp 只是一个发送邮件的程序而已,不能做这个事情的。
有些邮件客户端好像直接能做这个事情。直接用别名来发,而别人回信只会回到真的地址上。比如 gmail 上收邮件时,只会看到发件人的名字,不会看到他的地址。而直接点名字的话,会跳出写信。其中收件人的后面如下所示:
Beinan < beinan@gmail.com >
我的理解不知道对不对?
用我的电子邮件域名,这不就是企业邮局么
用别人的邮局(邮件服务器),用我的电子邮件域名,这不就是企业邮局么?
只要能找到能绑定自己域名的免费邮局即可,把可以自己的站内信托管出去,
我用一个邮件客户端+向别人邮局上的帐号发信,然后让他转发, 伪装成了我自己的邮件服务器发出去的信。