linux 下如何收发电子邮件!详细配置过程!
主要步骤:
1. 用以下命令查看系统是否安装了sendmail:
[root@mail /root]# rpm –qa |grep sendmail
sendmail-8.11.0-8
2. 卸载sendmail:
[root@mail /root]# rpm -e sendmail –nodeps
3. 用以下命令杀死运行中的sendmail进程:
[root@mail /root]# killall sendmail
如果系统提示:
sendmail: no process killed
则说明当前系统中没有sendmail进程。
4. 安装postfix:
[root@mail /root]# rpm -ivh postfix-20010228release-2.i386.rpm
若已经安装,则此步可以省略。(注:安装时最好用rpm包,会自动创建postfix用户和postfix组)
5. 安装imap
rpm –ivh /mnt/cdrom/RedHat/RPMS/ imap-4.7c2-12.rpm
imap使pop3有效,即打开110端口。(注:安装时最好用rpm包)
若已经安装,则此步可以省略。
6. 检查系统中是否安装了cyrus-sasl
执行以下命令查看系统中是否安装了cyrus-sasl:
rpm –qa |grep cyurs
如果您看到以下提示,则说明已经安装了cyrus-sasl
[root@test bye2000]# rpm -qa |grep sasl
cyrus-sasl-devel-1.5.24-17
cyrus-sasl-1.5.24-17
否则,请用rpm –ivh 命令先安装所需sasl-cyrus包。
7.修改postfix用户
同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用
的用户宿主目录。
编辑/etc/passwd文件中的相关条目如下所示:
postfix:x:89:89::/no/where:/no/shell [编辑后,只修改蓝色部分就可以了]
即:修改用户的Home directory和Shell 参照 /etc/passwd文件
8.编辑postfix的主要配置文件/etc/postfix/main.cf,根据需求只需修改以下几个参数:
1)mydomain
指明你的域名,在这里我们指定:
mydomain = xx.com
2)myorigin
myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为user@domain.com,则该参数指定@后面的域名。在这里我们指定:
myorigin = $mydomain
3)inet_interfaces
inet_interfaces = all 监听所有端口
4)mydestination
mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix
系统要接收什么样的邮件。通常与myorigin一样:
mydestination = $mydomain
5)mynetworks_style
设置网络类型,我们指定:
mynetworks_style = subnet
6)ynetworks
定义可以使用的此smtp服务器发信的客户ip地址,因为公司的ip范围已知,所以我们
指定:
mynetworks = 192.168.1.0/24
注:此项可根据情况而定,主要是指定ip范围,假如公司的ip划分是按照网段来的,例如:10.10.1.0~10.10.1.9,10.10.3.0~10.10.3.9等等更细。根据需要,该项可以不设置。
7)SMTP的配置
为了告诉postfix采用sasl来进行SMTP的用户认证,我们必须在/etc/postfix/main.cf文件的最后添加以下几行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
说明如下:
smtpd_sasl_auth_enable:告诉SMTP客户,该SMTP服务器需要进行用户认证。
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
仅仅中继通过SMTP认证的客户端邮件,以及接收本postfix为最后一站的邮件。
broken_sasl_auth_clients = yes
有一些Microsoft 的SMTP客户端,比如Outlook Express 4.X采用的是非标准的SMTP认证协议,将该选项设置为yes可以解决这类不兼容问题。
smtpd_sasl_security_options = noanonymous
控制本地SMTP认证所采用的机制,这里是允许任何非匿名认证方法。
9.配置SASL
进入/usr/lib/sasl/目录,用touch新建这样一个文件:
[root@test sasl]# touch smtpd.conf
在该文件中加入以下内容:
[root@test sasl]# more smtpd.conf
pwcheck_method:pam
也就是指定通过PAM来进行用户认证。
10.配置PAM
进入/etc/pam.d/目录,用touch新建这样一个文件:
[root@test pam.d]# touch smtp
在该文件中加入如下内容:
[root@test pam.d]# more smtp
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
也即和/etc/pam.d/pop文件的内容是一致的。
11.修改/etc/shadow文件权限
因为PAM最终要去读取/etc/shadow文件的内容来进行用户认证,但是/etc/shadow文件
权限是设置为只有root用户可以读写,而我们的postfix是运行在postfix用户权限之下,所以我们要合理的设置/etc/shadow文件权限,以便让pam可以读取其内容。
执行以下命令,让root组也可以读取shadow:
[root@test /etc]# chmod 640 /etc/shadow
然后再将postfix用户加入root组,采用以下命令:
[root@test /etc]# usermod -G root postfix
12.编辑postfix的主要配置文件/etc/postfix/master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
这里开始
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
这里结束
#628 inet n - n - - qmqpd
把我标的注释部分去掉即可。
13.配置pop3
RedHat7.0已经使用xinetd代替了以前的inetd,为了使pop3服务启动,我们编辑
/etc/xinetd.d/ipop3文件,将其中的disable = yes改为disable = no 以便启动pop3
服务。
为了使改动生效,执行以下命令:
/etc/rc.d/init.d/xinetd reload
14.启动postfix
执行以下命令启动postfix:
/etc/rc.d/init.d/postfix start
这样,一个支持SMTP认证的postfix邮件服务器就配好了。
1 组建两台邮件服务器A与B与一台DNS,其中
A 192.168.100.102/24 有域名mail.rhce.com
B 192.168.100.101/24 有域名mail.example.com
DNS 192.168.100.98则A上有如下配置
/etc/mail/local-host-names 用于定义收发邮件的主机别名
# local-host-names - include all aliases for your machine here.
rhce.com #注:不可少,否则收不到邮件,虽然可以发
mail.rhce.com #注:可不要/etc/mail/access #该文件用于限制哪些客户端可以使用此邮件服务器来转发邮件 (也可全不配,默认即是转发的)
rhce.com RELAY
example.com RELAY
192.168.100. RELAY
192.168.10. REJECT #设置拒绝转发192.168.10网段的邮件注:可以设置的选项还有 OK/REJECT/DISCARD/ERROR:550
B上有如下配置
/etc/mail/local-host-names (也可不配)
# local-host-names - include all aliases for your machine here.
example.com
mail.example.com/etc/mail/access
rhce.com RELAY
example.com RELAY
192.168.100. RELAY A和B均打开sendmail/dovecot服务 注:只有使用了dovecot才能使用Foxmail/OutLokk等通过POP3/IMAP协议接受邮件改/etc/mail/sendmail.cf 设置
O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA
service sendmail restart 注:要在0.0.0.0上监听
service dovecot restart 注:此时查看是否打开了110/143端口,实际上还打开了993(IMAP-SSL)/995(POP3-SSL)端口;
双方分别设置192.168.100.98为dns的IP
此外双方均要用makemap hash access.db<access 生成访问许可库文件
另外双方的hostname与/etc/sysconfig/network中的域名均要设为相应的域名DNS中的设置如下
如果DNS服务器也作为网关的话,DNS首先要打开ip转发功能;
named.confoptions {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
include "/etc/rndc.key";zone "." {
type hint;
file "named.ca";
};zone "example.com" {
type master;
file "example.com.zone";
allow-transfer {
192.168.1.177;
192.168.7.17;
};
};
zone "rhce.com" {
type master;
file "rhce.com.zone";
allow-transfer {
192.168.1.177;
192.168.7.17;
};
};example.com.zone$ttl 38400
example.com. IN SOA dns.example.com. admin.example.com. (
2005090503 ;Serial
10800 ;Refresh
3600 ;Retry
604800 ;Expire
38400 ) ;Negative Cache TTL
example.com. IN NS dns.example.com.
rhel4 IN CNAME dns
bbs IN CNAME www
samba IN CNAME www
example.com. IN MX 5 mail
mail IN A 192.168.100.101
rhce.com.zone$ttl 38400
rhce.com. IN SOA dns.rhce.com. admin.rhce.com. (
2005090503 ;Serial
10800 ;Refresh
3600 ;Retry
604800 ;Expire
38400 ) ;Negative Cache TTL
rhce.com. IN NS dns.rhce.com.
www.rhce.com. IN A 192.168.100.29
rhel4 IN CNAME dns
bbs IN CNAME www
samba IN CNAME www
rhce.com. IN MX 5 mail
mail IN A 192.168.100.102注:linux默认是不让用户用root用户登录邮箱的,可以换为alading或其它用户;
可以用 host -t mx example.com可以查询出example.com的MX记录 设置POP3S和IMAPS服务器都必须生成相应的密钥和证书; pop3端口110,imap端口143,pop3s端口995,imaps端口993;
服务器使用私钥加密邮件,客户端收邮件时,使用证书中的公钥对邮件进行解密,才能够正常读邮件;
制作私钥和自签名证书
cd /etc/pki/tls/certs/
make dovecot.pem #该文件保存邮件服务器的私钥和公钥信息;
vi /etc/dovecot.conf
将
ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
改为
ssl_cert_file = /etc/pki/tls/certs/dovecot.pem
ssl_key_file = /etc/pki/tls/certs/dovecot.pem
service dovecot restart关于Foxmail的使用
1 默认情况下不可以登录到root的邮箱,但可以用于发送
2 如果普通用户不能登录到邮箱,用passwd 设置密码后,再打开foxmail的邮箱账户设置,设置邮件服务器里头的高级设置,点中SMTP与POP3的SSL连接再试试;TLS Transport Layer Security
PKI Public Key Infrastructure
1前言
本教程旨在给未用过Linux系统的人提供一个快速入门的途径,使其能迅速上手,用好收发电子邮件,进行文件传输与远程登录等网络功能,并提供了深入学习Linux的资料源。
Linux系统的历史与应用
LINUX 是一个叫LINUS的芬兰人写的操作系统,他的初衷是把只能在大型工作站上运行的UNIX移植到个人PC上来。本着共享的精神,他在网络上公布了LINUX 0.01版,很快,借助于世界各地的电脑高手们的业余“创作”,LINUX迅速的成长壮大起来,以至于在网络中的很多PC机中安家落户,版本也做到了2.0。
LINUX的操作风格很类似UNIX,对网络的支持也很完备。一个LINUX系统的用户无论是收发电子邮件还是文件传输,都可以轻松的解决问题。
3 认识SHELL
在INTERNET网中的一般用户要接触到LINUX,大概只能通过远程登录的方法—
即TELNET程序,作为一个(伪)终端使用LINUX。所以还是先介绍一下如何登录。
举个例子,要登录本校的PEANUT机器:
开启TELNET 程序(以WIN95/NT中的TELNET为例),在“连接”—“远程系统”中填入
PEANUT.CDIT.EDU.CN
作为连接的对象,
屏幕显示:
Welcome to Chengdu University of Technology
欢迎访问成都理工大学校园网络
peanut login:[在这里填你的用户名]
password: [你的口令]
peanut:~$ [这就是登录进去后的提示符]
peanut:~$ exit [还是先退出吧]
4 认识文件系统
LINUX的文件系统与DOS基本是一样的(其实应该反过来说),都具有目录和文件的概念,也都有一个根目录,稍稍不同的是目录用“/”代表,而不是DOS中的“\”。
一个例子:
peanut:~$ pwd [回车]
peanut:~$ /home/home2/rudey [表示你现在位于根目录下的home目录下home2目录下的rudey目录(有些拗口 J )。]
你一定想到了,既然文件系统都差不多,操作一定也差不到哪去。对,下一节就以与DOS命令对照的形式介绍LINUX的基本操作。
5 命令列表
含义
LINUX
DOS
改变当前目录
cd [path]
cd [path]
文件或目录的复制
cp filename1 filename2
copy filename1 filename2
文件目录列表
ls
dir
建立新目录
mkdir
md
分屏显示[文本]文件的内容
more [filename…]
more <[filename]
更改用户的口令
passwd
无
显示当前目录
pwd
cd
删除文件[可有通配符]
rm filename
del filename
删除空目录
rmdir pathname
rd pathname
清屏
clear
cls
6常用的网络程序
收发电子邮件用的MAIL,PINE软件
MAIL和PINE都是运行在LINUX中的收发邮件的程序,PINE由于是菜单式的操作,相比之下较MAIL简单一些。在这里给大家一个提醒:MAIL中用“h”可获得操作的帮助;在PINE 中能用的命令都显示在屏幕底部的一行中,要仔细看一看就会用了。
要用的话,在SHELL中,即提示符下,输入MAIL或PINE就行了。如下:
peanut:-$ mail [回车]
或
peanut:-$ pine [回车]
文件传输
文件传输是在网络中免费获得软件的一个方法,LINUX当然也有相应的程序供使用。
peanut:-$ ftp [回车]
ftp> o ftp.cdit.edu.cn [在这里输入各种指令,现在表示与ftp.cdit.edu.cn 站点建立连接]
在欢迎信息之后,可用的指令有ls [列远端机上的目录或文件],cd [进入某一级目录],bin[设置为二进制模式,传二进制文件时使用],get [下传文件],quit [结束本程序]等。
提醒:建立连接之后,会有USER[用户名]的输入要求,在一般匿名FTP站点上,可以用anonymous[匿名]或ftp作为用户名,你自己的电子邮件地址作为PASSWORD[口令]。
远程登录
用远程登录可以做的事情很多,到别的学校的BBS上看看,没有TELNET是不行的(当然现在也有WWW方式的BBS)。
peanut:-$ telnet bbs.cdit.edu.cn [访问本校的BBS 公告板 ]
要是玩MUD的话,可以这么做:
peanut:-$ telnet mud.cdit.edu.cn 4000 [访问本校的MUD站点,使用4000端口]
登录以后的事情,留着给你自己看吧。
7 资料源
BBS上的LINUX信息
1 bbs.cdit.edu.cn下的精华区里有许多好文章
2 bbs.tsinghua.edu.cn有专门讨论LINUX的板
新闻组中的LINUX信息
comp.os.linux.help
文档
1 LINUX:我要创造一个新世界 《软件》(1997/11)
2 LINUX 使用指南 (清华大学出版社1997 年8月第1版)
3 LINUX 管理者的参考
8结束语
本来还想做一个FAQ,希望大家把在使用LINUX过程中遇到的问题寄给我,一方面会作答;一方面也能把FAQ写出来。
目前网络上常见的邮件服务协议主要为SMTP(发送协议)和POP3(接收协议)。
具体的过程我就不贴出来了.可以查看一下参考资料.
林到君芬: [font=宋体][/font][color=Red][/color] 1前言 本教程旨在给未用过Linux系统的人提供一个快速入门的途径,使其能迅速上手,用好收发电子邮件,进行文件传输与远程登录等网络功能,并提供了深入学习Linux的资料源. Linux系统的历史与应用...
吴忠市13425338441: linux怎么发送邮件 - ?
林到君芬: Linux服务器发送邮件一般都是基于sendmail进行的,sendmail服务器提供对外的邮件发送功能.1.安装sendmail服务器安装方法:#sudo apt-get install sendmail2.然后通过ps查看是否有sendmail进程,如果存在,则安装成功:#ps -ef|grep sendmailroot 1282 1 0 13:39 ? 00:00:00 sendmail: MTA: accepting connections3.成功安装sendmail后,就可以向邮件账户发送邮件了,编辑如下文件a.sh,通过chmod 更改权限后执行就可以.
吴忠市13425338441: linux中怎么发邮件?
林到君芬:in/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的 资源占用.而通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器...
吴忠市13425338441: linux 怎么发送邮件 - ?
林到君芬: 一般来说只要把sendmail的service起起来就可以发内网邮件了方法1 安装sendmail即可使用, mail -s "test" user@sohu.com <content.txtbin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置非...
吴忠市13425338441: linux如何实现发送邮件 - ?
林到君芬: 如果sendmail服务打开着直接就可以发送 $mail xy@yahoo.cn subject: hello hello this my test mail ctrl+d cc $
吴忠市13425338441: 如何在linux里接收QQ邮件?
林到君芬: kde下面用kmail就可以了,ThunderBird也可以,如果在gnome下可以使用evolution, 另外sylpheed也可以使用. http://www.bitscn.com/linux/desktop/200611/81153.html 不知道有没有命令,linux下的所有配置都是保存在配置文件里面的,你找到evolution的配置文件,直接修改里面的内容也行,具体不清楚了.没用过
吴忠市13425338441: Linux sendmail到底怎么往外发邮件 - ?
林到君芬: 我用的是 sendemail 还是比较简单的 部分参数如下:-f 表示from,发件人地址-t 表示to,收件人地址-s mail服务器域名-u 主题-xu 用户名(@之前的)-xp 用户密码-m 纯文本信息-o message-file=/root/.. 发送文件中的内容-a 发送附件 (-m,-o,-a可以同时使用) 需要注意的是填写服务器地址时最好添加上端口号 qq邮箱的端口号就不是默认的端口号 sudo apt-get install sendemail 建议在安装前先安装另外两个包:libio-socket-ssl-perl libnet-ssleay-perl
吴忠市13425338441: 在Linux下怎样进行邮件服务配置 - ?
林到君芬: 回答:figoo 新手5月16日 11:52 配置电子邮件服务 利用电子邮件服务,您可以在计算机中安装一些组件并将该计算机配置为电子邮件服务器.电子邮件服务包括邮局协议 3 (POP3) 服务以及简单邮件传输协议 (SMTP) 服务,分别用于接收和传...
吴忠市13425338441: Linux中关于mail的指令 - ?
林到君芬: mail 使用权限:所有使用者 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...] 说明: mail 不仅只是一个指令, mail 还是一个电子邮件程序,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因...
吴忠市13425338441: linux下 如何用邮件客户端接收本地root的邮件?
林到君芬: 服务器 写你的IP地址,或者填写成localhost 邮箱地址应该是root@localhost.localdomain 启动三个服务# /etc/rc.d/init.d/sendmail restart # /etc/rc.d/init.d/saslauthd start # /etc/rc.d/init.d/cyrus imapd start