ubuntu postfix安装问题及解决办法

2023-05-16

http://hi.baidu.com/truetruelove/blog/item/adf3099711b0f76454fb9653.html


从8月22日凌晨1点多熬到早上9点半,终于搞定发信收信。实在郁闷,刚接触postfix, 没想到这么麻烦。总结下问题和解决办法.
出现各种错误的主要原因:各种目录和文件权限问题,smtp和pop3密码验证 , 参数配置有误。

postconf -m 显示postfix安装的模块, 提示不支持mysql时,看看有没有把mysql编译进去

解决办法:开启日志,查看/var/log/mail.log, /var/log/syslog

这个命令可以测试收信的验证过程,一定要学会利用这个东东:
authtest -s login 
test@test.com password

如果验证成功会看到如下内容,不成功则看日志。下面显示的uid,gid一定要和配置文件对上
Authenticated: test@test.com (uid 5000, gid 5000)
    Home Directory: /var/mail/test.com/test
Maildir: /var/mail/test.com/test/Maildir/
Quota: 104857600S
Encrypted Password: $1$testtest$6TbcZk/fddcpSk6664LWak2N/
Cleartext Password: 这里显示明文密码

由于不能自动生成邮件目录,所以需要手工生成一下,不然收不了信。
进到/var/mail/test.com/test运行下面的命令会生成test用户的目录,邮件目录默认是Maildir/
maildirmake Maildir



我的配置: SMTP用sasl加密,SMTP和pop3都配置通过courier-authdaemon连接mysql验证. 表结构和数据来源于extman(密码是用md5crypt加密的, 用maildrop投递邮件.

extmail密码设置。这有密码格式说明:http://www.extmail.org/docs/Extmail_Parameter_Intro
1.   $1$hhhhhh$xxxxxxxxxxx 
该格式以md5()结果为基础,用一串hhhhhh(随机数)的hash对md5进行加密得到的密码,xxxxxxxxxxxxx 就是md5密文数据,它的特征是以$1$为前缀,符合此说明的格式就是md5crypt。
例:$1$187665$G.H.mgUc6NDNY

用如下php代码可以正确生成密码, 然后拿去更新mailbox表里的密码。extman默认密码为extmail
<?php
//两$符号中间的数字是随机的,可以任意设置,不高于12位
$salt ='$1$187665$';
$password = 'yourpassword';
$password = crypt($password, $salt);
echo $password;
?>

我的设置:以test@test.com(即邮箱登录用户名)邮箱为例, 基目录为/var/mail/, 域为test.com。
邮件保存目录: /var/mail/test.com/test
用户和组:固定使用vmail, uid,gid都是5000

切记:所有配置文件里mysql主机地址不要设为localhost应该设成127.0.0.1, 不然有可能连接不上mysql。

1.authdaemon设置
authdaemon配置文件:/etc/courier/authdaemonrc,/etc/courier/authmysqlrc
把authdaemonrc里的DEBGU_LOGIN设置为2, 开启登录调试,在/var/log/mail.*,/var/log/syslog里可以查看登录过程中出的错。日志很有用的.

重点注意:
(1)/var/run/courier/authdaemon/目录需要vmail有权限访问,不然连接不上authdaemon
(2)authmysqlrc里uid,gid的设置一定要对,我是固定为5000。如果从表里查uid,gid一定和vmail用户对上. 不然maildrop没法投递信
(3)切记切记:authmysqlrc里不能用tab要用空格,行尾不能有空格。下面是我的全部配置。
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME test
MYSQL_PASSWORD test
MYSQL_DATABASE test
MYSQL_USER_TABLE mailbox
#MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD /var/mailbox/
#MYSQL_MAILDIR_FIELD concat('/var/mail/',substring_index(email,'@',1),'/')
MYSQL_MAILDIR_FIELD maildir
MYSQL_SOCKET /var/run/mysqld/mysqld.sock 
MYSQL_PORT 3306
MYSQL_CRYPT_PWFIELD password
MYSQL_NAME_FIELD name
MYSQL_QUOTA_FIELD quota
MYSQL_SELECT_CLAUSE SELECT username,password,"",5000,5000,concat('/var/mail/',homedir), concat('/var/mail/',maildir),quota, name FROM mailbox WHERE username='$(local_part)@$(domain)'


2.postfix设置
map文件我就不写了,这只写主要配置文件。
/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/postfix/sasl/smtpd.conf   这个没有自己加,CentOS在/usr/lib/sasl2/目录下
重点注意:
(1)不能把虚拟邮箱域加到mydestination里
(2)用maildrop需要在main.cf里加上 maildrop_destination_recipient_limit=1
(3)postfix默认会chroot到/var/spool/目录去运行,我这里配置smtpd不chroot,不然很麻烦。

master.cf改动
smtp把chroot下面改为n不使用chroot
maildrop去掉,改为下面的
maildrop unix -       n       n       -       -       pipe
flags=DRhu user=vmail argv=maildrop -d ${user}@${nexthop}    ${recipient}    {$user}   ${extension}   ${nexthop}



以下是smtpd.conf文件的全部配置,//以后是我加的注释。我设为使用authdaemon验证和pop3收信统一验证过程

mech_list:plain login        //这设置为普通但mysql里密码是md5crypt加密过的, 不使用明文密码
pwcheck_method: authdaemond
authdaemond_path: /var/run/courier/authdaemon/socket       //这个路径一定要对不然连不上authdaemon
allownonymouslogin:no                                                            //不允许匿名登录
allowplaintext:yes
log_level:7 //开启调试可以在/var/mail.*,/var/log/syslog里查看登录时的信息

/etc/postfix/main.cf 全部配置
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
home_mailbox = Maildir/
inet_interfaces = all
mailbox_size_limit = 1024000000
message_size_limit = 52428800
mydestination = localhost, localhost.localdomain, localhost
myhostname = localhost
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
readme_directory = /usr/share/doc/postfix
recipient_delimiter = +
relayhost = 
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_sender_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_pipelining
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_domains = 
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /var/mail/
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 1024000000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = maildrop:
virtual_uid_maps = static:5000
maildrop_destination_recipient_limit=1

参考:
http://www.extmail.org/docs/extmail_solution_linux/
http://hi.baidu.com/netwrom/blog/item/210656fa8de3a11e6d22ebe9.html
http://howtoforge.com/virtual_postfix_mysql_quota_courier


密码格式说明
http://www.extmail.org/docs/Extmail_Parameter_Intro


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu postfix安装问题及解决办法 的相关文章

随机推荐

  • ubuntu 下更改窗口的默认颜色

    白色实在太刺眼 xff0c 在ubuntu 下同样也更改窗口颜色保护眼睛 更改边框的颜色 xff1a 在桌面上右键 xff0d 更改桌面背景 xff0d 主题 xff0d 自定义 xff0d 颜色 xff0d 输入框 xff0d 背景 R
  • Linux操作系统挂载U盘和硬盘光驱的问题

    http root 5d6d com thread 726 1 1 html 一 Linux挂载U盘 1 插入u盘到计算机 xff0c 如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话 xff0c 那它的硬件名称为 sda1
  • STM32:从菜鸟到牛人就是如此简单!

    为了学习单片机而去学习单片机的思路是不对的 你问 如何系统地入门学习stm32 xff1f 本身就是一个错误的问题 假如你会使用8051 会写C语言 那么STM32本身并不需要刻意的学习 你要考虑的是 我可以用STM32实现什么 xff1f
  • 如何在Ubuntu下制作ISO镜像

    http cursed iteye com blog 472512 在Windows下有很多大型破解软件可以完成 xff0c 但是在linux下就轻便多了 而且不用承受非法使用软件带来的不安 xff08 如果你感觉不安的话 xff09 步骤
  • Ubuntu中配置双显示器方法

    http hankgong iteye com blog 667022 现在很多人为了提高工作效率 xff0c 都用双显示器了 xff0c 我用了快有3年了 windows中配置双显示器是比较简单的 xff0c 只要显卡装好了 xff0c
  • pdf阅读器xpdf的安装与中文乱码问题

    http apps hi baidu com share detail 17962100 1 安装xpdf xff1a sudo apt get install xpdf 2 解决xpdf打开中文时的乱码问题 xff1a sudo apt
  • wamp 中apache没法启动的问题

    最近重装了window xff0c 所有的软件都需要重装 xff0c 但装了wamp后发现apache 总是没法启动 后来发现退出skype后apache就能启动 xff0c 哦 xff0c 想到apache启动后需要用80端 xff0c
  • ubuntu 用root登录后没法使用chromium 的问题

    用root登录后启动chromium会出现错误 xff1a Google Chrome can not be run as root Please start Google Chrome as a normal user To run as
  • Linux下的XAMPP基本配置技巧(设置虚拟主机、添加FTP账户等)

    http www cnblogs com luoine archive 2011 03 09 1978096 html xampp安装好之后就只有一个默认站点及一个默认nobody的ftp账户 xff0c 这显然不符合我们平时的需求了 xf
  • 揭秘SQL优化技巧 改善数据库性能

    http www php100 com html webkaifa database Mysql 2011 1206 9438 html 这篇文章是以 MySQL 为背景 xff0c 很多内容同时适用于其他关系型数据库 xff0c 需要有一
  • mysql 5.0存储过程学习总结

    http www ccvita com 100 html mysql存储过程的创建 xff0c 删除 xff0c 调用及其他常用命令 mysql 5 0存储过程学习总结 一 创建存储过程 1 基本语法 xff1a create proced
  • SVN常用命令

    http sunjun041640 blog 163 com blog static 2562683220111154567740 1 将文件checkout到本地目录 svn checkout path xff08 path是服务器上的目
  • magento :如何在后台的form中添加内容可变的select filed

    如下图 xff1a 在product form中添加了一个attribute spot spotter xff0c 这个attribute可以选择某个已注册的用户 注意了 xff0c 由于这个attribute 的内容是动态变化的 xff0
  • STM32好找工作,所以学linux错了吗?

    不知道各位朋友有没有发现 xff0c 公众号改版了 xff0c 现在的推送规则已经不一定是按照时间顺序了 xff0c 有一些小伙伴甚至几天收不到消息 xff0c 要点进去公众号主页才能看到 所以 xff0c 为了账号不会从您的订阅表里面消失
  • MyISAM 与InnoDB 数据表类型区别

    http blog sina com cn s blog 5a8b8eb80100stge html InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型 xff0c 这两个表类型各有优劣 xff0c 视具体应用而定 基本
  • 手把手教你把Vim改装成一个IDE编程环境(图文)

    http blog csdn net wooin article details 1858917
  • Mysql-Master与Slave配置

    http database ctocio com cn 291 12219291 shtml 今天在ubuntu下进行了mysql的Master和Slave的简单配置 xff0c 基本上属于hello world的难度 xff0c 但是看起
  • 上海回来的一点感想

    1 上海不是一般的冷 xff0c 是非常冷 xff0c 上海回来的时候在上海都要穿毛衣了 xff0c 但广州还是短袖衣服 2 在上海足足吃了两个月的 大娘水饺 xff0c 几乎把那里的水饺品尝了一次 xff0c 结果发现还是素的水饺好吃 x
  • Linux日知录(常用问题笔记)

    http blog csdn net yizhu2000 article details 7068842 0 序言 日有一知 当有一录 自09年来 工作所需 接触开源平台 对Linux常有涉猎 其间问题 记录在案 虽为敝帚 不敢自珍 所记条
  • ubuntu postfix安装问题及解决办法

    http hi baidu com truetruelove blog item adf3099711b0f76454fb9653 html 从8月22日凌晨1点多熬到早上9点半 xff0c 终于搞定发信收信 实在郁闷 xff0c 刚接触p