用linux系统搭建postfix邮件服务器,但是局域网可以实现互发邮件,不能给其他的公网邮箱互发邮件,求解
Postfix最被人称道的地方就在于其配置文件的可读性很高。Postfix的主配置文件是/etc/postfix/maincf。
在maincf文件中,参数都是以类似变量的设置方法来设置的,这些参数的使用主要包含两部分的内容:
(1)定义和声明变量:例如definename = good-better-best。等号左边是变量的名称,等号右边是变量的值。
(2)引用变量:可以在变量的前面加上符号“$”来引用该变量,如:myname = $ definename(相当于definename = good-better-best)。
需要注意的是:等号两边需要有空格字符。此外,如果变量有两个以上的设置值,就必须用逗号“,”或者空格符“ ”将它们分开。
在熟悉了上述变量的定义和引用方法后,下面详细介绍如何安全、高效地配置Postfix服务器的相关选项。
1.设置Postfix服务监听的网络接口
默认情况下,inet_interfaces参数的值被设置为localhost,这表明只能在本地邮件主机上寄信。如果邮件主机上有多个网络接口,而又不想使全部的网络接口都开放Postfix服务,就可以用主机名指定需要开放的网络接口。不过,通常是将所有的网络接口都开放,以便接收从任何网络接口来的邮件,即将inet_interfaces参数的值设置为“all”,如下所示:
inet_interfaces = all
2.安全设置可接收邮件的主机名称或域名
mydestination参数非常重要,因为只有当发来的邮件的收件人地址与该参数值相匹配时,Postfix才会将该邮件接收下来。通过该选项的设置可以过滤掉许多没有经过认证和授权的邮件,从而节省服务器的存储空间,以及节省用户的邮件处理时间。
举一个简单的例子,用户可以将该参数值设置为如下:
accept_domain = testnet
mydestination = $accept_domain
这就表明无论来信的收件人地址是X@testnet(其中X表示某用户在testnet域中的邮件账户名),Postfix都会接收这些邮件。而除此之外的邮件,Postfix都不会接受。
3.安全设置可转发邮件的网络(IP设置)
有关安全设置可转发邮件的网络可以使用mynetworks参数来设置。可将该参数值设置为所信任的某台主机的IP地址,也可设置为所信任的某个IP子网或多个IP子网(采用“,”或者“ ”分隔)。
比如,用户可以将mynetworks参数值设置为172168960/24,则表示这台邮件主机只转发子网172168960/24中的客户端所发来的邮件,而拒绝为其他子网转发邮件:
mynetworks = 172168960/24
除了mynetworks参数外,还有一个用于控制网络邮件转发的参数是mynetworks-style,它主要用来设置可转发邮件网络的方式。通常有以下三种方式:
(1)class:在这种方式下,Postfix会自动根据邮件主机的IP地址得知它所在的IP网络类型(即A类、B类或是C类),从而开放的它所在的IP网段。
(2)subnet:这是postfix的默认值,postfix会根据邮件主机的网络接口上所设置的IP地址、子网掩码来得知所要开放的IP网段。
(3)host:在这种方式下,postfix只会开放本机。
通常,用户一般不需要设置mynetworks-style参数,而直接设置mynetworks参数。如果这两个参数都进行了设置,那么mynetworks参数的设置有效。
4.设置可转发邮件的网络(域名设置)
上面介绍的mynetworks参数是针对邮件来源的IP来设置的,而relay_domains参数则是针对邮件来源的域名或主机名来设置的,其实从原理上来说是一致的,不过是区分了IP地址和域名而已,不过,relay_domains还需要依赖DNS这个基础设施。
例如,用户可以将relay_domains参数值设置为testnet,则表示任何由域testnet发来的邮件都会被认为是信任的,Postfix会自动对这些邮件进行转发,如下所示:
relay_domains = testnet
那么,要使它能在实际网络中更好地转发邮件,还必须进行相应的DNS设置。那么,需要在该网络的DNS服务器上定义了一个主区域testnet,并在该区域配置文件中定义了以下记录:
//定义邮件服务器的IP地址
pattersontestnet IN A 17216896254
//定义邮件服务器的别名
mailtestnet IN CNAME pattersontestnet
//定义优先级别
testnet IN MX 10 mailtestnet
上述记录只对邮件服务器进行了定义,还有诸如SOA、NS等的定义,在这里就不再赘述。
配置Postfix使用SMTP安全认证
Postfix默认不会对外开放转发功能,而仅对本机(localhost)开放转发功能。但是,在实际应用中,必须在Postfix主配置文件中通过设置mynetworks、relay_domains参数来开放一些所信任的网段或网域,否则该邮件服务器几乎没有什么用处。在开放了这些所信任的网段或网域后,还可以通过设置SMTP认证,对要求转发邮件的客户端进行用户身份(用户账户名与密码)验证。只有通过了验证,才能接收该用户寄来的邮件并帮助转发。同样,Postfix中目前比较常用的SMTP认证机制是通过Cyrus SASL包来实现的。
默认情况下,Postfix并没有启用SMTP认证机制。要让Postfix启用SMTP认证,就必须对Postfix的主配置文件/etc/postfix/maincf进行修改。用户需要在maincf文件中添加如下有关SMTP认证的设置部分:
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = ''
smtpd_recipient_restrictions = permit_mynetworks
permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients=yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
其中,每个选项的具体含义如下:
(1)smtpd_sasl_auth_enable:指定是否要启用SASL作为SMTP认证方式。默认不启用,这里必须将它启用,所以要将该参数值设置为yes。
(2)smtpd_sasl_local_domain:如果采用Cyrus-SASL版进行认证,那么这里不做设置。
(3)smtpd_recipient_restrictions:表示通过收件人地址对客户端发来的邮件进行过滤。通常有以下几种限制规则:
permit_mynetworks:表示只要是收件人地址位于mynetworks参数中指定的网段就可以被转发邮件。
permit_sasl_authenticated:表示允许转发通过SASL认证的邮件。
reject_unauth_destination:表示拒绝转发含未信任的目标地址的邮件。
(4)broken_sasl_auth_clients:表示是否兼容非标准的SMTP认证。有一些Microsoft的SMTP客户端采用非标准的SMTP认证协议,只需将该参数设置为yes就可解决这类不兼容问题。
(5)smtpd_client_restrictions:表示限制可以向Postfix发起SMTP连接的客户端。如果要禁止未经过认证的客户端向Postfix发起SMTP连接,则可将该参数值设置为permit_sasl_authenticated。
(6)smtpd_sasl_security_options:用来限制某些登录的方式。如果将该参数值设置为noanonymous,则表示禁止采用匿名登录方式。
在完成上述设置后,必须使用
/etc/initd/postfix reload
重新载入配置文件,或使用
/etc/initd/postfix restart
重新启动Postfix服务,以使该配置生效。这两个命令的具体使用需要根据不同的Linux版本来选用。
此外,由于当Postfix要使用SMTP认证时,会读取/usr/lib/sasl2/smtpdconf文件中的内容,以确定所采用的认证方式,因此如果要使用saslauthd这个守护进程来进行密码认证,就必须确保/usr/lib/sasl2/smtpdconf文件中的内容为:
pwcheck_method: saslauthd
下面现介绍一下运行次序和运行级别:
一个 Linux 系统的引导过程可以分为几个阶段。我们主要看看当内核加载后的那一个阶段你可以运行runlevel 命令来确定您的系统当前的运行级,当内核被加载并开始运行时会调用 /sbin/init 程序,这个程序以 root 身份运行,并且在开始引导时按照要求设定为“运行级”。 系统服务
rc 脚本负责启动用户需要的所有服务。就像名字所描述的一样,所谓服务就是系统提供的有用的工具。可能会有很多服务需要启动。大部分的 Linux 系统会启动 sshd(安全Shell服务)、syslog(系统日志工具)和 lpd(打印服务),但还会有更多的服务需要启动。
过多的服务会增加开机的时间,优化关闭不需要的服务将会提高启动时间。
输入system-config-services看看系统都启动那些服务
关闭不使用的服务:
(此部分可能存在风险,如果你不确定的服务请不要关闭他,此优化针对桌面用户)
NetworkManager 关闭
NetworkManagerDispatcher 关闭
anacron关闭
atd 关闭
apmd 关闭
avahi-daemon 关闭
avahi-dnsconfd 关闭
bluetooth hcid sdpd hidd dund pand 关闭 (你不使用蓝牙设备)
capi 关闭
cupsd 关闭 (你不使用打印机设备)
dc client dc server 关闭 (你不使用Apache)
firstboot 关闭
gpm 关闭 (终端中鼠标支持 你可以3中开启,5中关闭)
hplip hpiod hpssd 关闭 (你不使用打印机设备开启)
ip6tables 关闭
irqbalance 关闭 (多核CPU开启)
irda irattach 关闭 (使用红外开启)
im sensors 关闭
mdmonitor 关闭
mdmpd 关闭
netplugd 关闭
netfs 关闭
ntpd 关闭
pcscd 关闭
portmap 关闭
rpcgssd rpcidmapd rpcsvcgssd 关闭
sendmail 关闭
smb 关闭
认识linux服务
请先阅读Fedora服务管理指南。了解什么是服务/后台进程(services/daemons),什么是运行级别(runlevels)以及各种用于管理服务(sevices)的工具。
你可以在命令行下使用chkonfig或ntsysv命令来管理服务(services),或者使用具有图形用户界面的system-config-services命令。GNOME用户:系统-》管理-》服务器设置-》Services。
--------------------------------------------------------------------------------
单个服务介绍
现在我们介绍FedoraCore6中所包含的各种服务(services)的功能,并提供使用建议。这不是一份详尽的清单。小心:不要关闭你不确定或不知道的服务(services)。
不要关闭以下服务(除非你有充足的理由):
acpid,haldaemon,messagebus,klogd,network,syslogd
请确定修改的是运行级别3和5。
--------------------------------------------------------------------------------
NetworkManager,NetworkManagerDispatcher
NetworkManager是一个自动切换网络连接的后台进程。很多笔记本用户都需要启用该功能,它让你能够在无线网络和有线网络之间切换。大多数台式机用户应该关闭该服务。一些DHCP用户可能需要开启它。
acpid
ACPI(全称AdvancedConfigurationandPowerInterface)服务是电源管理接口。建议所有的笔记本用户开启它。一些服务器可能不需要acpi。支持的通用操作有:“电源开关“,”电池监视“,”笔记本Lid开关“,“笔记本显示屏亮度“,“休眠”,“挂机”,等等。
anacron,atd,cron
这几个调度程序有很小的差别。建议开启cron,如果你的电脑将长时间运行,那就更应该开启它。对于服务器,应该更深入了解以确定应该开启哪个调度程序。大多数情况下,笔记本/台式机应该关闭atd和anacron。注意:一些任务的执行需要anacron,比如:清理/tmp或/var。
apmd
一些笔记本和旧的硬件使用apmd。如果你的电脑支持acpi,就应该关闭apmd。如果支持acpi,那么apmd的工作将会由acpi来完成。
autofs
该服务自动挂载可移动存储器(比如USB硬盘)。如果你使用移动介质(比如移动硬盘,U盘),建议启用这个服务。
avahi-daemon,avahi-dnsconfd
Avahi是zeroconf协议的实现。它可以在没有DNS服务的局域网里发现基于zeroconf协议的设备和服务。它跟mDNS一样。除非你有兼容的设备或使用zeroconf协议的服务,否则应该关闭它。我把它关闭。
bluetooth,hcid,hidd,sdpd,dund,pand
蓝牙(Bluetooth)是给无线便携设备使用的(非wifi,80211)。很多笔记本提供蓝牙支持。有蓝牙鼠标,蓝牙耳机和支持蓝牙的手机。很多人都没有蓝牙设备或蓝牙相关的服务,所以应该关闭它。其他蓝牙相关的服务有:hcid管理所有可见的蓝牙设备,hidd对输入设备(键盘,鼠标)提供支持,dund支持通过蓝牙拨号连接网络,pand允许你通过蓝牙连接以太网。
capi
仅仅对使用ISDN设备的用户有用。大多数用户应该关闭它。
cpuspeed
该服务可以在运行时动态调节CPU的频率来节约能源(省电)。许多笔记本的CPU支持该特性,现在,越来越多的台式机也支持这个特性了。如果你的CPU是:Petium-M,Centrino,AMDPowerNow,Transmetta,IntelSpeedStep,Athlon-64,Athlon-X2,IntelCore2中的一款,就应该开启它。如果你想让你的CPU以固定频率运行的话就关闭它。
cron
参见anacron。
cupsd,cups-config-daemon
打印机相关。如果你有能在Fedora中驱动的CUPS兼容的打印机,你应该开启它。
dc_client,dc_server
磁盘缓存(Distcache)用于分布式的会话缓存。主要用在SSL/TLS服务器。它可以被Apache使用。大多数的台式机应该关闭它。
dhcdbd
这是一个让DBUS系统控制DHCP的接口。可以保留默认的关闭状态。
diskdump,netdump
磁盘转储(Diskdump)用来帮助调试内核崩溃。内核崩溃后它将保存一个“dump“文件以供分析之用。网络转储(Netdump)的功能跟Diskdump差不多,只不过它可以通过网络来存储。除非你在诊断内核相关的问题,它们应该被关闭。
dund
参见bluetooth。
firstboot
该服务是Fedora安装过程特有的。它执行在安装之后的第一次启动时仅仅需要执行一次的特定任务。它可以被关闭。
gpm
终端鼠标指针支持(无图形界面)。如果你不使用文本终端(CTRL-ALT-F1,F2),那就关闭它。不过,我在运行级别3开启它,在运行级别5关闭它。
hidd
参见bluetooth。
hplip,hpiod,hpssd
HPLIP服务在Linux系统上实现HP打印机支持,包括Inkjet,DeskJet,OfficeJet,Photosmart,BusinessInkJet和一部分LaserJet打印机。这是HP赞助的惠普Linux打印项目(HPLinuxPrintingProject)的产物。如果你有相兼容的打印机,那就启用它。
iptables
它是Linux标准的防火墙(软件防火墙)。如果你直接连接到互联网(如,cable,DSL,T1),建议开启它。如果你使用硬件防火墙(比如:D-Link,Netgear,Linksys等等),可以关闭它。强烈建议开启它。
ip6tables
如果你不知道你是否在使用IPv6,大部分情况下说明你没有使用。该服务是用于IPv6的软件防火墙。大多数用户都应该关闭它。阅读这里了解如何关闭Fedora的IPv6支持。
irda,irattach
IrDA提供红外线设备(笔记本,PDA''s,手机,计算器等等)间的通讯支持。大多数用户应该关闭它。
irqbalance
在多处理器系统中,启用该服务可以提高系统性能。大多数人不使用多处理器系统,所以关闭它。但是我不知道它作用于多核CPU''s或超线程CPU''s系统的效果。在单CPU系统中关闭它应该不会出现问题。
isdn
这是一种互联网的接入方式。除非你使用ISDN猫来上网,否则你应该关闭它。
kudzu
该服务进行硬件探测,并进行配置。如果更换硬件或需要探测硬件更动,开启它。但是绝大部分的台式机和服务器都可以关闭它,仅仅在需要时启动。
lm_sensors
该服务可以探测主板感应器件的值或者特定硬件的状态(一般用于笔记本电脑)。你可以通过它来查看电脑的实时状态,了解电脑的健康状况。它在GKrellM用户中比较流行。查看lm_sensors的主页获得更多信息。如果没有特殊理由,建议关闭它。
mctrans
如果你使用SELinux就开启它。默认情况下FedoraCore开启SELinux。
mdmonitor
该服务用来监测SoftwareRAID或LVM的信息。它不是一个关键性的服务,可以关闭它。
mdmpd
该服务用来监测Multi-Path设备(该类型的存储设备能被一种以上的控制器或方法访问)。它应该被关闭。
messagebus
这是Linux的IPC(InterprocessCommunication,进程间通讯)服务。确切地说,它与DBUS交互,是重要的系统服务。强烈建议开启它。
netdump
参见diskdump。
netplugd
Netplugd用于监测网络接口并在接口状态改变时执行指定命令。建议保留它的默认关闭状态。
netfs
该服务用于在系统启动时自动挂载网络中的共享文件空间,比如:NFS,Samba等等。如果你连接到局域网中的其它服务器并进行文件共享,就开启它。大多数台式机和笔记本用户应该关闭它。
nfs,nfslock
这是用于Unix/Linux/BSD系列操作系统的标准文件共享方式。除非你需要以这种方式共享数据,否则关闭它。
ntpd
该服务通过互联网自动更新系统时间。如果你能永久保持互联网连接,建议开启它,但不是必须的。
pand
参见bluetooth。
pcscd
该服务提供智能卡(和嵌入在信用卡,识别卡里的小芯片一样大小)和智能卡读卡器支持。如果你没有读卡器设备,就关闭它。
portmap
该服务是NFS(文件共享)和NIS(验证)的补充。除非你使用NFS或NIS服务,否则关闭它。
readahead_early,readahead_later
该服务通过预先加载特定的应用程序到内存中以提供性能。如果你想程序启动更快,就开启它。
restorecond
用于给SELinux监测和重新加载正确的文件上下文(filecontexts)。它不是必须的,但如果你使用SELinux的话强烈建议开启它。
rpcgssd,rpcidmapd,rpcsvcgssd
用于NFSv4。除非你需要或使用NFSv4,否则关闭它。
sendmail
除非你管理一个邮件服务器或你想在局域网内传递或支持一个共享的IMAP或POP3服务。大多数人不需要一个邮件传输代理。如果你通过网页(hotmail/yahoo/gmail)或使用邮件收发程序(比如:Thunderbird,Kmail,Evolution等等)收发程序。你应该关闭它。
smartd
SMARTDiskMonitoring服务用于监测并预测磁盘失败或磁盘问题(前提:磁盘必须支持SMART)。大多数的桌面用户不需要该服务,但建议开启它,特别是服务器。
smb
SAMBA服务是在Linux和Windows之间共享文件必须的服务。如果有Windows用户需要访问Linux上的文件,就启用它。查看如何在FedoraCore6下配置Samba。
sshd
SSH允许其他用户登录到你的系统并执行程序,该用户可以和你同一网络,也可以是远程用户。开启它存在潜在的安全隐患。如果你不需要从其它机器或不需要从远程登录,就应该关闭它。
xinetd
(该服务默认可能不被安装)它是一个特殊的服务。它可以根据特定端口收到的请求启动多个服务。比如:典型的telnet程序连接到23号端口。如果有telent请求在23号端口被xinetd探测到,那xinetd将启动telnetd服务来响应该请求。为了使用方便,可以开启它。运行chkconfig--list,通过检查xinetd相关的输出可以知道有哪些服务被xinetd管理。
postfix创建邮件账号命令:
useradd -g mail -s /sbin/nologin user配置好邮件服务器后,重启dovecot服务。
/etc/initd/dovecot start然后测试,发送接收邮件!
假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是邮件简报、状态更新(如 Cachet)、监控警报(如 Monit)、磁盘时间(如 RAID mdadm)等等。当你要建立自己的 邮件发送服务器 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦。
谷歌的 Gmail 服务就是最可靠的 免费 SMTP 服务器 之一。想要从应用中发送邮件通知,你仅需在应用中添加 Gmail 的 SMTP 服务器地址和你的身份凭证即可。
使用 Gmail 的 SMTP
服务器会遇到一些限制,这些限制主要用于阻止那些经常滥用服务器来发送垃圾邮件和使用邮件营销的家伙。举个例子,你一次只能给至多 100
个地址发送信息,并且一天不能超过 500
个收件人。同样,如果你不想被标为垃圾邮件发送者,你就不能发送过多的不可投递的邮件。当你达到任何一个限制,你的 Gmail
账户将被暂时的锁定一天。简而言之,Gmail 的 SMTP 服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。
说了这么多,是时候向你们展示 如何在 Linux 环境下使用 Gmail 的 SMTP 服务器 了。
Google Gmail SMTP 服务器设置
如果你想要通过你的应用使用 Gmail 的 SMTP 服务器发送邮件,请牢记接下来的详细说明。
邮件发送服务器 (SMTP 服务器): smtpgmailcom
使用认证: 是
使用安全连接: 是
用户名: 你的 Gmail 账户 ID (比如 "alice" ,如果你的邮箱为 alice@gmailcom)
密码: 你的 Gmail 密码
端口: 587
确切的配置根据应用会有所不同。在本教程的剩余部分,我将向你展示一些在 Linux 上使用 Gmail SMTP 服务器的应用示例。
从命令行发送邮件
作为第一个例子,让我们尝试最基本的邮件功能:使用 Gmail SMTP 服务器从命令行发送一封邮件。为此,我将使用一个称为 mutt 的命令行邮件客户端。
先安装 mutt:
对于 Debian-based 系统:
$ sudo apt-get install mutt
对于 Red Hat based 系统:
$ sudo yum install mutt
创建一个 mutt 配置文件(~/muttrc),并和下面一样,在文件中指定 Gmail SMTP 服务器信息。将 <gmail-id> 替换成自己的 Gmail ID。注意该配置只是为了发送邮件而已(而非接收邮件)。
$ vi ~/muttrc
set from = "<gmail-id>@gmailcom"set realname = "Dan Nanni"set smtp_url = "smtp://<gmail-id>@smtpgmailcom:587/"set smtp_pass = "<gmail-password>"
一切就绪,使用 mutt 发送一封邮件:
$ echo "This is an email body" | mutt -s "This is an email subject" alice@yahoocom
想在一封邮件中添加附件,使用 "-a" 选项
$ echo "This is an email body" | mutt -s "This is an email subject" alice@yahoocom -a ~/test_attachmentjpg
使用 Gmail SMTP 服务器意味着邮件将显示是从你 Gmail 账户发出的。换句话说,收件人将视你的 Gmail 地址为发件人地址。如果你想要使用自己的域名作为邮件发送方,你需要使用 Gmail SMTP 转发服务。
当服务器重启时发送邮件通知
如果你在 虚拟专用服务器(VPS)
上跑了些重要的网站,建议监控 VPS 的重启行为。作为一个更为实用的例子,让我们研究如何在你的 VPS
上为每一次重启事件建立邮件通知。这里假设你的 VPS 上使用的是 systemd,并向你展示如何为自动邮件通知创建一个自定义的 systemd
启动服务。
首先创建下面的脚本 reboot_notifysh,用于负责邮件通知。
$ sudo vi /usr/local/bin/reboot_notifysh
#!/bin/sh
echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" alice@yahoocom
$ sudo chmod +x /usr/local/bin/reboot_notifysh
在这个脚本中,我使用 "-F" 选项,用于指定系统级的 mutt 配置文件位置。因此不要忘了创建 /etc/muttrc 文件,并如前面描述的那样填入 Gmail SMTP 信息。
现在让我们创建如下一个自定义的 systemd 服务。
$ sudo mkdir -p /usr/local/lib/systemd/system$ sudo vi /usr/local/lib/systemd/system/reboot-taskservice
[Unit]
Description=Send a notification email when the server gets rebooted
DefaultDependencies=no
Before=reboottarget
[Service]
Type=oneshot
ExecStart=/usr/local/bin/reboot_notifysh
[Install]
WantedBy=reboottarget
在创建服务后,添加并启动该服务。
$ sudo systemctl enable reboot-task$ sudo systemctl start reboot-task
从现在起,在每次 VPS 重启时,你将会收到一封通知邮件。
通过服务器使用监控发送邮件通知
作为最后一个例子,让我展示一个现实生活中的应用程序,Monit,这是一款极其有用的服务器监控应用程序。它带有全面的 VPS 监控能力(比如 CPU、内存、进程、文件系统)和邮件通知功能。
如果你想要接收 VPS 上由 Monit 产生的任何事件的邮件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。
set mailserver smtpgmailcom port 587
username "<your-gmail-ID>" password "<gmail-password>"
using tlsv12
set mail-format {
from: <your-gmail-ID>@gmailcom
subject: $SERVICE $EVENT at $DATE on $HOST
message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION
Yours sincerely,
Monit
}
# the person who will receive notification emails
set alert alice@yahoocom
这是一个因为 CPU 负载超载而由 Monit 发送的邮件通知的例子。
唉。整了这么多天终于自己整出来了,欣欣然。这个问题主要原因是mail_location not set and autodetection failed 两个问题
关于第一个mail_location ,在/etc/dovecot/confd目录下有一个10-mailconf的文件。内容如下:
# mail_location = maildir:~/Maildir
mail_location = mbox:~/mail:INBOX=/var/mail/%u
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
取消注释
关于第二个问题。还是dovecot的问题,找到/etc/dovecot/dovecotconf 文档,编辑里面的内容
protocols = imap pop3 lmtp
disable_plaintext_auth=no
ssl_disable = no
取消注释,并添加你的文件中或许没有的内容。
不管你的好用不好用,反正我的好用了。自己分自己拿。
0条评论