如何安装和配置邮件(与Postfix)在Debian挤压

如何安装和配置Mailman(使用Postfix)在Debian Squeeze上

Mailman是一个开源邮件列表管理器,即可用于管理电子邮件讨论和通讯列表。 它可能是互联网上最受欢迎和广泛使用的邮件列表管理器。 本教程介绍如何使用Postfix邮件服务器在Debian Squeeze服务器上安装和配置Mailman。

我不会保证这将为您工作!

1初步说明

在本教程中,我将配置一个主机名为lists.example.com的虚拟主机,我将在其中安装Mailman。 lists.example.com也是Mailman中配置的邮件列表电子邮件地址的正确部分,即邮件列表中的邮件必须发送到地址<listname> @ lists.example.com

由于您的主机名不同,请相应地调整本教程。 还要确保您的主机名存在于DNS中。

Mailman可以与许多邮件服务器一起使用(例如Postfix,Exim,Sendmail,Qmail)。 我将在本教程中使用Postfix。 确保您有一个Postfix安装工作,例如本教程所示: 虚拟用户和域使用Postfix,Courier,MySQL和SquirrelMail(Debian Squeeze)

2安装Mailman和Apache

由于Mailman附带了Web前端,除了Mailman之外,我们还需要一个Web服务器。 我选择Apache。 Mailman和Apache可以安装如下:

apt-get install mailman apache2

您将看到以下问题/消息:

支持语言: < - en(英文)
缺少网站列表
Mailman需要一个所谓的“站点列表”,这是密码提醒等从中发出的列表。 这个列表需要在mailman开始之前创建。 要创建列表,请运行“newlist mailman”并按照屏幕上的说明进行操作。 请注意,您还需要启动邮件程序,然后使用/etc/init.d/mailman启动。 < - 好的

Mailman附带了一个Apache配置文件/etc/mailman/apache.conf ,我们复制到/etc/apache2/sites-available/mailman.conf中

cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf

打开/etc/apache2/sites-available/mailman.conf ...

vi /etc/apache2/sites-available/mailman.conf

...并附加以下虚拟机配置文件(已经有一个虚拟机为lists.example。net在该文件中被发布 - 请不要使用该vhost,因为我的vhost配置有所不同,虽然看起来相当类似):

[...]
<VirtualHost *:80>
ServerName lists.example.com
DocumentRoot /var/www/lists
ErrorLog /var/log/apache2/lists-error.log
CustomLog /var/log/apache2/lists-access.log combined

<Directory /var/lib/mailman/archives/>
    Options FollowSymLinks
    AllowOverride None
</Directory>

Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin
ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb
ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm
ScriptAlias /create /usr/lib/cgi-bin/mailman/create
ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml
ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo
ScriptAlias /options /usr/lib/cgi-bin/mailman/options
ScriptAlias /private /usr/lib/cgi-bin/mailman/private
ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist
ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster
ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo
</VirtualHost>

第二个最后一行ScriptAlias / / usr / lib / cgi-bin / mailman / listinfo是可选的; 这使得当您访问http://lists.example.com/时,您将被重定向到http://lists.example.com/listinfo 。 如果您没有在文件root / var / www / lists中提供任何文件,这是有道理的。

接下来创建文件root / var / www / lists ,启用lists.example.com vhost配置并重新启动Apache:

mkdir /var/www/lists
a2ensite mailman.conf
/etc/init.d/apache2 restart

因为我们在这里使用vhost( lists.example.com ),我们需要在/etc/mailman/mm_cfg.py中调整以下变量

vi /etc/mailman/mm_cfg.py
[...]
DEFAULT_URL_PATTERN = 'http://%s/'
[...]
DEFAULT_EMAIL_HOST = 'lists.example.com'
[...]
DEFAULT_URL_HOST = 'lists.example.com'
[...]

3配置Postfix

现在我们需要配置Postfix。 第一次运行:

postconf -e 'relay_domains = lists.example.com'
postconf -e 'mailman_destination_recipient_limit = 1'

然后打开/etc/postfix/master.cf ...

vi /etc/postfix/master.cf

...并确保您有以下行(默认情况下应该在那里):

[...]
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}
[...]

接下来,我们必须将lists.example.com域与mailman: transport相关联。 这样做取决于您的Postfix配置。 例如,如果您已经根据使用Postfix,Courier,MySQL和SquirrelMail(Debian Squeeze)教程的虚拟用户和域设置了服务器,则传输将存储在MySQL数据库中; 在大多数其他设置中,文件/ etc / postfix / transport用于创建传输。 我将在3.1和3.2章节中描述这两种情况。

3.1在MySQL数据库中的传输

如果您已经根据使用Postfix,Courier,MySQL和SquirrelMail(Debian Squeeze)教程的虚拟用户和域设置了服务器,则传输将存储在邮件 MySQL数据库的传输表中。 要创建必要的传输,请登录MySQL ...

mysql -u root -p

...并运行以下MySQL命令:

USE mail;
INSERT INTO `transport` (`domain`, `transport`) VALUES ('lists.example.com', 'mailman:');
quit;

之后重新启动Postfix:

/etc/init.d/postfix restart

3.2传输在/ etc / postfix / transport中

如果你没有在MySQL数据库中的传输,你可能使用文件/ etc / postfix / transport 。 在这种情况下,您可以按如下所示设置必要的运输方式:

postconf -e 'transport_maps = hash:/etc/postfix/transport'

打开/ etc / postfix / transport ...

vi /etc/postfix/transport

...并添加以下行:

lists.example.com      mailman:

postmap -v /etc/postfix/transport

之后重启Postfix:

/etc/init.d/postfix restart

4创建邮件员邮件列表

在我们开始使用Mailman之前,我们必须创建一个名为mailman的邮件列表; 这是强制性的 - 没有它,Mailman将不会启动:

newlist --urlhost=lists.example.com --emailhost=lists.example.com mailman

在大多数情况下,-- urlhost--emailhost交换机不是必需的,因为我们的vhost已经被命名为lists.example.com ,而且我们也在/etc/mailman/mm_cfg.py(DEFAULT_EMAIL_HOSTDEFAULT_URL_HOST )中使用它,但是如果要确保Mailman使用正确的主机名,请使用这些开关。

root @ server1:〜#newlist --urlhost = lists.example.com --emailhost = lists.example.com mailman
输入运行列表的人的电子邮件: < - 指定列表管理员电子邮件地址,例如sales@example.com
初始邮件密码: < - mailman_password
要完成创建邮件列表,您必须编辑/ etc /别名(或
等效)文件,添加以下行,并可能运行
`newaliases'程序:

##邮件邮件列表
邮递员:“| / var / lib / mailman / mail / mailman post mailman”
mailman-admin:“| / var / lib / mailman / mail / mailman admin mailman”
mailman-bounces:“| / var / lib / mailman / mail / mailman bounces mailman”
mailman确认:“| / var / lib / mailman / mail / mailman确认邮件员”
mailman-join:“| / var / lib / mailman / mail / mailman join mailman”
mailman-leave:“| / var / lib / mailman / mail / mailman leave mailman”
mailman-owner:“| / var / lib / mailman / mail / mailman owner mailman”
邮件请求:“| / var / lib / mailman / mail / mailman请求邮件员”
mailman-subscribe:“| / var / lib / mailman / mail / mailman subscribe mailman”
mailman-unsubscribe:“| / var / lib / mailman / mail / mailman取消订阅邮件员”

点击输入以通知邮递员所有者... < - ENTER

root @ server1:〜#

现在打开/ etc / aliases并添加您在newlist命令的输出中看到的别名(必须为您创建的每个新列表手动完成):

vi /etc/aliases
[...]
## mailman mailing list
mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

每当修改/ etc /别名时,都需要运行

newaliases
/etc/init.d/postfix restart

之后。

现在我们终于可以开始Mailman了

/etc/init.d/mailman start
root@server1:~# /etc/init.d/mailman start
Starting Mailman master qrunner: mailmanctl.
root@server1:~#
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏