婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用ubuntu搭建公網個人郵件服務器(基于postfix,dovecot,mysql)

使用ubuntu搭建公網個人郵件服務器(基于postfix,dovecot,mysql)

熱門標簽:同花順電話機器人微信 房產證地圖標注的兩個面積 威海電銷外呼系統好用嗎 湖北孝感如何辦理 武漢語音電銷機器人加盟 北京電銷機器人對市場的影響 外呼系統的合法性 地圖標注x是啥意思 輝縣市地圖標注

前言

本教程基于 ubuntu 18.04(其他的 linux 理論上也是可以的,知識安裝的軟件包不一樣)。用到的主要軟件為:postfix,dovecot,mysql.廢話不多說,下面是教程:

前置條件

  • mysql 數據庫。本教程中使用 mysql 存儲域名,用戶信息等。
  • 域名。需要有域名才能實現向公網發郵件/收郵件。這里以 test.com 為例。
  • ssl 證書。有不少免費的 ssl 證書提供商,或者使用自簽證書,百度即可。

安裝軟件

切換到 root 用戶下,執行以下命令:

apt update
apt install postfix postfix-mysql dovecot-core dovecot-pop3d dovecot-imapd dovecot-lmtpd dovecot-mysql

安裝過程中 postfix 會彈出提示:

這里我們選擇第二項:Internet Site。

接著會有如下提示:

這里填入:test.com

配置mx 解析

在域名提供商增加以下解析:

  • MX 記錄:test.com 指向 服務器IP
  • A 記錄:pop3.test.com 指向 服務器IP
  • A 記錄:smtp.test.com 指向 服務器IP

創建 mysql 數據庫

新建一個數據庫 mailserver,管理賬號為:admin/123456

創建虛擬域表,作為認證域。該表是郵件服務器用以接收郵件的域名:

-- 建立表
CREATE TABLE `virtual_domains` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 插入一條記錄
insert into virtual_domains values(1,'test.com')

創建用戶表,用于用戶身份認證。

-- 創建用戶表
CREATE TABLE `virtual_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`password` VARCHAR(106) NOT NULL,
`email` VARCHAR(120) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 插入兩個用戶,以md5加密密碼,實際應用中應該選擇強度更高的算法,md5目前以及不安全了
insert into virtual_users values(1,1,md5('123456'),'first@test.com');
insert into virtual_users values(2,1,md5('123456'),'second@test.com');

創建別名表.該表作用相當于當 source 收到郵件時,該郵件會自動轉發到 destination 上。

-- 創建表
CREATE TABLE `virtual_aliases` (
`id` int(11) NOT NULL auto_increment,
`domain_id` int(11) NOT NULL,
`source` varchar(100) NOT NULL,
`destination` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 插入數據,所有發給first的郵件都會自動轉發給second
insert into virtual_aliases values(1,1,'first@test.com','second@test.com')

生成 ssl 證書

生成 ssl 證書可參考這一篇https://www.jb51.net/article/60371.htm ,假設證書存放地址為:

  • 公鑰 /etc/letsencrypt/live/test.com/fullchain.pem;
  • 私鑰 /etc/letsencrypt/live/test.com/privkey.pem;

配置 postfix

首選備份 postfix 的默認配置文件,然后編輯main.cf

cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
vim /etc/postfix/main.cf

注釋下面的配置:


然后加入如下的配置:

# 使用自己的ssl證書
smtpd_tls_cert_file=/etc/letsencrypt/live/test.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/test.com/privkey.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
# 使用dovecot來做身份認證
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

修改 myhostname,myorigin 為如下的值:

myhostname = test.com
myorigin = $myhostname

修改 mydestination 值為 localhost,以啟動 mysql 中的虛擬域。:

mydestination = localhost

在配置文件的最后加入以下行,確保將郵件投遞給 mysql 表中列出的虛擬域。

virtual_transport = lmtp:unix:private/dovecot-lmtp

最后加入以下三項參數,告知 Postfix 配置虛擬域、用戶和別名

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

接下來創建上面最后加入的三項參數對應的文件。

創建/etc/postfix/mysql-virtual-mailbox-domains.cf,內容如下:

user = admin
password = 123456
port = 3306
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'

接著重啟 postfix,并測試 postfix 能否找到域,如果成功返回 1:

service postfix restart
postmap -q test.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

創建/etc/postfix/mysql-virtual-mailbox-maps.cf,內容如下:

user = admin
password = 123456
port = 3306
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'

接著重啟 postfix,并測試其能否找到郵箱地址,成功返回 1:

service postfix restart
postmap -q first@test.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

最后創建/etc/postfix/mysql-virtual-alias-maps.cf,內容如下:

user = admin
password = 123456
port = 3306
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

同樣重啟 postfix,驗證能否正確找到別名,并返回:

service postfix restart
postmap -q first@test.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

如果響應使用 587 端口來進行俺的 smtp 通信,需修改/etc/postfix/master.cf 文件:

取消以下行的注釋:

配置 dovecot

postfix 配置完畢,現在來配置 dovecot,首先編輯主配置文件/etc/dovecot/dovecot.conf:

首先確保下面一行是啟用的:

!include conf.d/*.conf

然后在配置文件的最后加入如下配置,啟用各協議:

protocols = imap lmtp pop3

修改/etc/dovecot/conf.d/10-mail.conf,確保存在以下兩個配置:

mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail

上面的配置將郵件存放目錄設置在/var/mail 中,因此將該文件夾的所屬人改為 vmail/vmail.命令如下:

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/mail
chown -R vmail:vmail /var/mail

修改/etc/dovecot/conf.d/10-auth.conf。首先確保如下兩個配置存在且值正確:

disable_plaintext_auth = yes
auth_mechanisms = plain login

然后修改配置以禁用系統用戶登陸,并開啟 mysql 支持,如下圖所示:

修改/etc/dovecot/dovecot-sql.conf.ext文件,將內容改成下面的內容:

passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}

修改/etc/dovecot/dovecot-sql.conf.ext:

首選取消 driver 參數注釋并設置為 mysql

driver = mysql

然后取消 connect 行注釋并設置為如下內容:

connect = host=127.0.0.1 port=3306 dbname=mailserver user=admin password=123456

接著取消 default_pass_scheme 行的注釋并改為 MD5

default_pass_scheme = MD5

接著取消 password_query 行的注釋并設置為以下信息:

password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

最后將/etc/dovecot的擁有者改為 vmail:dovecot

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot

修改/etc/dovecot/conf.d/10-master.conf:

首先將 imap-login , pop3-login 下第一個的 port 設置為 0,以禁用非 ssl 加密的 imap 和 pop3 協議,如下圖所示:

然后找到service lmtp將其修改為如下:

service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
# Create inet listener only if you can't use the above UNIX socket
#inet_listener lmtp {
# Avoid making LMTP visible for the entire internet
#address =
#port =
#}
}

然后找到service auth將其內容修改為如下:

service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
#group =
}
user = dovecot
}

最后找到service auth-worker改為如下內容:

service auth-worker {
# Auth worker process is run as root by default, so that it can access
# /etc/shadow. If this isn't necessary, the user should be changed to
# $default_internal_user.
user = vmail
}

最后要改的就是/etc/dovecot/conf.d/10-ssl.conf,以開啟 ssl 認證.

首先將 ssl 參數改為 required:

ssl = required

然后設置 ssl 證書路徑就 ok 了,還是用之前的 ssl 證書:

ssl_cert = /etc/letsencrypt/live/test.com/fullchain.pem
ssl_key = /etc/letsencrypt/live/test.com/privkey.pem

到這里所有的配置都 OK,重啟 postfix,dovecot 后就可以用郵箱客戶端(比如 foxmail)連接了。

service postfix restart
service dovecot restart

結束

配合一個郵件客戶端看似很簡單,實際上還是有很多坑的,看看上面那么多的配置項就知道了,一定要耐心。

如果無法登陸,可以看看 postfix 和 dovecot 的日志報錯情況,再去修改。日志位置在/var/log

注意:

被這個問題困擾了好幾天,未找到解決辦法,最后放棄.

目前很多主機廠商都不支持和其他服務器的 25 端口通信,已知的有(谷歌云,阿里云),這樣就導致在這些機器上搭建的 postfix 郵件服務器,無法向其他的外網郵箱發送郵件,因為無法和其他 smtp 服務器的 25 端口建立連接。貌似是為了避免有人惡意搭建郵件服務器向其他的郵件服務器發送大量的垃圾郵件,從而導致此服務器 IP 被反垃圾郵件組織列入 SML。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Ubuntu下搭建mail郵件服務器的方法教程
  • Ubuntu中啟用php的mail()函數并解決發送郵件速度慢問題

標簽:麗江 紹興 蚌埠 武威 西寧 迪慶 日喀則 安康

巨人網絡通訊聲明:本文標題《使用ubuntu搭建公網個人郵件服務器(基于postfix,dovecot,mysql)》,本文關鍵詞  使用,ubuntu,搭建,公網,個人,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用ubuntu搭建公網個人郵件服務器(基于postfix,dovecot,mysql)》相關的同類信息!
  • 本頁收集關于使用ubuntu搭建公網個人郵件服務器(基于postfix,dovecot,mysql)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久久精品综合| 亚洲国产wwwccc36天堂| 亚洲国产精品自拍| 国产农村妇女毛片精品久久麻豆 | 黑人巨大精品欧美一区| 久久久国际精品| 日韩精品最新网址| 91污在线观看| 9色porny自拍视频一区二区| 国产一区二区0| 国产成人精品免费视频网站| 北岛玲一区二区三区四区| 亚洲第一在线综合网站| 亚洲精品福利视频网站| 亚洲人精品午夜| 亚洲精品国产一区二区精华液 | 成人激情视频网站| 成人性生交大片免费看中文| 久久99热99| 国产毛片精品国产一区二区三区| 日韩高清不卡一区二区| 日本亚洲欧美天堂免费| 国产91精品一区二区| 在线观看日韩一区| 欧美精品久久久久久久久老牛影院| 色狠狠av一区二区三区| 4438亚洲最大| 国产精品视频第一区| 亚洲电影第三页| 成人av资源下载| 91.xcao| 精品国产电影一区二区| 中文字幕日韩一区| 蜜臀av国产精品久久久久| 激情深爱一区二区| 欧美在线观看视频一区二区 | 2019国产精品| 午夜精品久久久久久久| 久久99九九99精品| 日韩欧美国产综合| 亚洲成人一区二区| 成人黄色软件下载| 国产精品久久久久aaaa| 午夜精彩视频在线观看不卡| 99久久99久久久精品齐齐| 久久亚洲精品小早川怜子| 国产一区 二区| 一区二区三区电影在线播| 欧美不卡一二三| 天堂va蜜桃一区二区三区| 欧美日韩一卡二卡三卡| 麻豆精品在线视频| 91精品国产麻豆| 国产一区二区三区av电影 | 久久久久97国产精华液好用吗| 午夜欧美视频在线观看| 欧美色视频在线| 午夜私人影院久久久久| 日韩免费看的电影| 无码av免费一区二区三区试看| 99久免费精品视频在线观看 | 国产成人超碰人人澡人人澡| 欧美电影免费观看高清完整版 | 日韩欧美中文一区| 日本va欧美va精品发布| 日韩亚洲欧美综合| 国产精品亚洲一区二区三区在线 | 一区二区三区丝袜| 日韩免费高清av| 成人免费视频国产在线观看| 亚洲小说欧美激情另类| 久久亚洲综合色| 欧美美女一区二区三区| 成a人片亚洲日本久久| 午夜天堂影视香蕉久久| 国产精品美女视频| 日本韩国精品在线| 东方欧美亚洲色图在线| 日本美女一区二区三区| 亚洲精品免费一二三区| 国产精品久久久久久久久搜平片| 欧美一卡二卡三卡| 日韩精品一区二区在线观看| 色狠狠综合天天综合综合| 国产.精品.日韩.另类.中文.在线.播放 | 国产精品久久久久精k8| 精品粉嫩aⅴ一区二区三区四区| 97se狠狠狠综合亚洲狠狠| 国产精品影视网| 国产精品一卡二卡在线观看| 一区二区三区四区在线播放| 国产精品美女久久久久久久网站| 国产视频视频一区| 国产亚洲综合在线| 91最新地址在线播放| 91精品国产高清一区二区三区蜜臀| av午夜精品一区二区三区| 粉嫩嫩av羞羞动漫久久久| 国产91丝袜在线播放九色| 99久久精品情趣| 欧美最猛性xxxxx直播| 日韩欧美国产电影| 国产清纯在线一区二区www| 亚洲男同性恋视频| 午夜精品久久久久久久久久| 经典三级在线一区| 成人免费的视频| 欧美一区二区在线看| 国产日韩精品一区| 亚洲bt欧美bt精品| 成人激情校园春色| 欧美视频一区二区三区四区| 欧美大片免费久久精品三p| 成人免费视频在线观看| 久久99精品网久久| 555www色欧美视频| 亚洲欧洲国产专区| 精品在线一区二区| 7777精品伊人久久久大香线蕉最新版| 久久亚洲一级片| 久久成人免费网| 7777精品伊人久久久大香线蕉的| 亚洲图片激情小说| 国产真实乱对白精彩久久| 欧美伊人精品成人久久综合97| 国产午夜亚洲精品理论片色戒| 免费日本视频一区| 欧美日韩一二三| 视频一区中文字幕国产| 99精品国产91久久久久久| 亚洲欧美一区二区视频| 成人黄色小视频| 亚洲精品免费看| 欧美日韩国产经典色站一区二区三区| 国产欧美精品一区| 国产99一区视频免费| 国产精品午夜免费| 91啦中文在线观看| 青娱乐精品视频| 久久九九影视网| 99久久久国产精品免费蜜臀| 亚洲一区二三区| 日韩精品中文字幕一区二区三区| 国产麻豆日韩欧美久久| 国产精品卡一卡二卡三| 日本高清不卡视频| 美女在线一区二区| 中文字幕亚洲区| 日韩精品一区二区三区视频在线观看| 精品在线视频一区| 亚洲在线成人精品| 亚洲精品在线观| 欧美日韩精品一区二区三区蜜桃 | 日韩欧美国产一区二区三区| 一本久久a久久精品亚洲| 欧洲另类一二三四区| 久久久无码精品亚洲日韩按摩| 国产99久久久国产精品免费看| 亚洲第一精品在线| 久久综合九色综合欧美就去吻 | 91极品视觉盛宴| 国产乱码一区二区三区| 亚洲国产精品尤物yw在线观看| 欧美高清在线一区| 精品国产乱码久久久久久夜甘婷婷| 在线免费不卡视频| 99精品视频一区二区三区| 国产麻豆欧美日韩一区| 狠狠v欧美v日韩v亚洲ⅴ| 国产乱淫av一区二区三区| 久久精品99国产精品| 日本午夜精品视频在线观看| 亚洲第四色夜色| 麻豆精品久久精品色综合| 日本欧美大码aⅴ在线播放| 免费在线观看视频一区| 青青国产91久久久久久| 麻豆免费看一区二区三区| 加勒比av一区二区| 成人综合在线观看| 99久久久久久| 欧美亚州韩日在线看免费版国语版| 91久久精品国产91性色tv | 日本丶国产丶欧美色综合| 欧美日韩专区在线| 在线播放中文一区| 久久久综合网站| 亚洲老司机在线| 狠狠狠色丁香婷婷综合久久五月| 国产v日产∨综合v精品视频| 色偷偷一区二区三区| 久久蜜臀中文字幕| 亚洲国产精品视频| 成人福利视频在线| 日韩你懂的在线观看| 亚洲视频中文字幕| 极品瑜伽女神91| 4438x成人网最大色成网站| 久久综合久久综合九色| 一个色在线综合|