Ако не сте следили статиите за Debian 12, горещо препоръчвам да ги прочетете, защото тази тема е продължение на предните. За пояснение: ● инсталирахме Debaian 12 ● настроихме Debian 12 ТУК ● настроихме DNS сървъра ТУК ● инсталирахме и настроихме Apache ТУК ● инсталирахме и настроихме MySQL и PHPMyAdmin ТУК Ще създадем най-елементарен сървър за електронна поща. За да работи правилно трябва да се пренасочат някои от портовете ако сте зад рутер. Ако пък сте директно в Интернет с реално IP то тогава освободете портовете в защитната стена. Портовете са: TCP - 25 - SMTP TCP - 587 - SMTP Start TLS TCP - 465 - SMTP SSL TCP - 110 - POP3 TCP - 995 - POP3 SSL TCP - 143 - IMAP Start TLS TCP - 993 - IMAP SSL TCP - 589 - IMAP4 SSL
Нагледни картинки за получаване и изпращане на електронна поща. Няма да пояснявам на https://tlan.net/menu/linux/debian/debian9/09Mail/mailDebian9.php подробно съм обяснил работата на пощенския сървър. Или ако обобщим, PostFix играе ролята на MTA агент (приема/праща) писма до отсрещния МТА агент (пощенски сървър), а Dovecot (MDA) агент, отговаря за управлението на пощенските кутии. Ще проверим няколко неща преди да почнем. Започваме с DNS-a.
nslookup > my.tlan.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: my.tlan.net Address: 185.163.245.186 > set q=mx > my.tlan.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: my.tlan.net mail exchanger = 10 ns1.my.tlan.net. > exit
Също ни е необходимо и пълното име на хоста (FQDN). По-нататък ще го ползваме когато инсталираме PostFix.
hostname -f ns1.my.tlan.net
PostFix е агент за получаване/изпращане на писма. Той е основен компонент в мейл сървърите Да го инсталираме.
apt update -y apt upgrade -y apt install postfix -y
Забележете, FQDN на хоста ни е ns1.my.tlan.net, видяхме го малко по-нагоре Правим копие на конфигурационните файлове.
cp /etc/postfix/main.cf /etc/postfix/main.cf.original cp /etc/postfix/master.cf /etc/postfix/master.cf.original
Проверяваме PostFix дали работи правилно.
telnet gmail-smtp-in.l.google.com 25 Trying 172.217.218.26... Connected to gmail-smtp-in.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP m7-20020a17090679c700b00a522e9112f5si6994578ejo.264 - gsmtp quit
Връзваме се към пощенския сървър на Google. Първи извод !!!. PostFix се използва да се изпрати писмото до определен получател. Работи със SMTP протокол на порт 25. В момента говорим в много груб вариант. Не разглеждаме връзки с MySQL и т.н. Може да пратим тестово писмо до някой адрес. Примерно до tachko@mail.bg. И пак с уговорка, ползвайте за тест електронни пощи не от рода на Gmail, защото веднага ще блокират мейла. Имат високо ниво на сигурност. Ползвайте елементарни пощи. За теста ще ползваме помощна програма mail, която първо трябва да я получим от пакета MailUtils.
apt install mailutils -y
Инстаирахме набор от помощни програми за сървъри за електронни пощи. Да направим и теста. Пращаме писмо до tachko@mail.bg.
echo test | mail tachko@mail.bg
В пощенската кутия на tachko@mail.bg трябва да пристигне писмо от root без заглавие и със съдържание test. До тук всичко работи нормално. Да проверим в логовете какво се случва.
cat /var/log/mail.log 2024-04-26T06:22:20.809158-04:00 ns1 postfix/pickup[2676]: C575214026E: uid=0 from=<root@ns1.my.tlan.net> 2024-04-26T06:22:20.814443-04:00 ns1 postfix/cleanup[5284]: C575214026E: message-id=<20240426102220.C575214026E@ns1.my.tlan.net> 2024-04-26T06:22:20.815779-04:00 ns1 postfix/qmgr[2677]: C575214026E: from=<root@ns1.my.tlan.net>, size=315, nrcpt=1 (queue active) 2024-04-26T06:22:22.867769-04:00 ns1 postfix/smtp[5286]: C575214026E: to=<tachko@mail.bg>, relay=mail.tachko.com[109.160.80.230]:25, delay=2.1, delays=0.01/0.01/0.22/1.8, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 1135C52C0C4B) 2024-04-26T06:22:22.868000-04:00 ns1 postfix/qmgr[2677]: C575214026E: removed
Чрез PostFix изпратихме писмо от root@ns1.my.tlan.net до tachko@mail.bg. Веднага се набива на око, че ползваме root@ns1.my.tlan.net. Това е така защото работим на машината с главния потребител root, а пълното име (FQDN) на машината е ns1.my.tlan.net И ако проверим дали има запис там където се разполагат пощенските кутии за потребителя root@ns1.my.tlan.net ще видим следното:
ls -l /var/mail/ total 0
Няма нищо. Това е така защото не сме получили за сега нищо за потребителя, а само сме пращали. Дойде време да получим писмо. За целта правим обратното, пращаме от tachko@mail.bg до нас. Като казвам нас това означава адресс: root@my.tlan.net. За външния свят ние сме част от домейна my.tlan.net, а не хоста (машината) в домейна ns1.my.tlan.net.
cat /var/log/mail.log 2024-05-02T05:28:04.898693-04:00 ns1 postfix/smtpd[3033]: connect from mx5.mail.bg[193.201.172.121] 2024-05-02T05:28:05.089795-04:00 ns1 postfix/smtpd[3033]: NOQUEUE: reject: RCPT from mx5.mail.bg[193.201.172.121]: 454 4.7.1 <root@my.tlan.net>: Relay access denied; from=<tachko@mail.bg> to=<root@my.tlan.net> proto=ESMTP helo=<mx5.mail.bg> 2024-05-02T05:28:05.135240-04:00 ns1 postfix/smtpd[3033]: disconnect from mx5.mail.bg[193.201.172.121] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8
И още един тест. Пращаме от tachko@mail.bg до root@ns1.my.tlan.net
cat /var/log/mail.log 2024-05-02T05:36:37.208474-04:00 ns1 postfix/smtpd[3057]: connect from mx5.mail.bg[193.201.172.121] 2024-05-02T05:36:37.408232-04:00 ns1 postfix/smtpd[3057]: 639FE140275: client=mx5.mail.bg[193.201.172.121] 2024-05-02T05:36:37.429221-04:00 ns1 postfix/cleanup[3059]: 639FE140275: message-id=<20fd8cd7ce2bbe290c13b71bcc9b59fc.mailbg@mail.bg> 2024-05-02T05:36:37.430594-04:00 ns1 postfix/qmgr[2661]: 639FE140275: from=<tachko@mail.bg>, size=1542, nrcpt=1 (queue active) 2024-05-02T05:36:37.430652-04:00 ns1 postfix/smtpd[3057]: disconnect from mx5.mail.bg[193.201.172.121] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7 2024-05-02T05:36:37.436703-04:00 ns1 postfix/local[3060]: 639FE140275: to=<root@ns1.my.tlan.net>, relay=local, delay=0.03, delays=0.03/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) 2024-05-02T05:36:37.436819-04:00 ns1 postfix/qmgr[2661]: 639FE140275: removed ls -l /var/mail/ total 4 -rw------- 1 root mail 1654 May 2 05:36 root
Писмото е пратено и доставено до пощенската кутия. Веднага бихте попитали защо първия път не стана. Отговора е прост. Защото когато инсталирахме PostFix казахме, че пред света (Интернет) ще се представя като ns1.my.tlan.net, затова можем да получаваме писма за root@ns1.my.tlan.net, а за root@my.tlan.net не можем. Нищо не е загубено, можем да поправим проблема.
nano /etc/postfix/main.cf ### Търсим: mydestination = $myhostname, ns1.my.tlan.net, localhost.my.tlan.net, , localhost ### Заменяме на: mydestination = $myhostname, my.tlan.net, localhost.my.tlan.net, , localhost service postfix restart service postfix status
Просто трием ns1.my.tlan.net, защото е едно и също с $myhostname. По-горе във файла се дефинира myhostname = ns1.my.tlan.net И наново пращаме писмо от tachko@mail.bg до root@my.tlan.net.
cat /var/log/mail.log 2024-05-02T05:57:31.370947-04:00 ns1 postfix/smtpd[3544]: connect from mx5.mail.bg[193.201.172.121] 2024-05-02T05:57:31.576666-04:00 ns1 postfix/smtpd[3544]: 8CBD61407EF: client=mx5.mail.bg[193.201.172.121] 2024-05-02T05:57:31.597644-04:00 ns1 postfix/cleanup[3549]: 8CBD61407EF: message-id=<7a9524d64b38bb3326613e3009bfc85a.mailbg@mail.bg> 2024-05-02T05:57:31.598990-04:00 ns1 postfix/qmgr[3472]: 8CBD61407EF: from=<tachko@mail.bg>, size=1569, nrcpt=1 (queue active) 2024-05-02T05:57:31.599113-04:00 ns1 postfix/smtpd[3544]: disconnect from mx5.mail.bg[193.201.172.121] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7 2024-05-02T05:57:31.604734-04:00 ns1 postfix/local[3550]: 8CBD61407EF: to=<root@my.tlan.net>, relay=local, delay=0.03, delays=0.03/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) 2024-05-02T05:57:31.604832-04:00 ns1 postfix/qmgr[3472]: 8CBD61407EF: removed
Писмото е получено до root@my.tlan.net и записано във файла /var/mail/root Трябва да отговорим, защо потребителя на пощенската кутия е root и защо всички писма се записват в един общ файл. 1. Ползваме потребител root, защото работим с потребители от операционната система. По време на инсталацията създадохме два потребителя. Единия е root с пълни права върху системата и cccp с ограничени права. Така на практика имаме два потребителя на електронна поща. Ако искаме да не сме зависими от потребителите на операционната система ще се наложи да работим с виртуални домейни и виртуални потребители. 2. Писмата се записват в един общ файл защото работим по системата MBOX. Остарял начин на управление на писмата но за простота ще работим с него. Другия начин е ползването на Maildir но това ще е в следваща статия. Да видим и самото писмо:
cat /var/mail/root ======================== Начало на първо писмо ">======================== From tachko@mail.bg Thu May 2 05:36:37 2024 Return-Path: <tachko@mail.bg> X-Original-To: root@ns1.my.tlan.net Delivered-To: root@ns1.my.tlan.net Received: from mx5.mail.bg (mx5.mail.bg [193.201.172.121]) by ns1.my.tlan.net (Postfix) with ESMTPS id 639FE140275 for <root@ns1.my.tlan.net>; Thu, 2 May 2024 05:36:37 -0400 (EDT) Received: from mail.bg (unknown [10.0.0.37]) by mx5.mail.bg (Postfix) with ESMTPA id EBFBC8098D52 for <root@ns1.my.tlan.net>; Thu, 2 May 2024 12:36:36 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mail.bg; s=default; t=1714642597; bh=irW/KUnW6bQ/FEP3xsi4YQfoGLLHeId3Pkl+L46EeYc=; h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type; b=Rd3geQWGgvxWU7NIVLcgYCjSHFiFywg67QQEC0lnHXHbb5oUOqj9LNWzj0kaFXnig /Ood1uUlnKPuWVlRp/6lcIq86jmh0rGp/3vRVcdYigw0T0MXZ986vmEJyiVdjTZ3V5 NRNCoN06Buk1K65Jgobbas3b/liXliFsWwPCocbo= Message-ID: <20fd8cd7ce2bbe290c13b71bcc9b59fc.mailbg@mail.bg> Date: Thu, 2 May 2024 12:36:36 +0300 Subject: s From: Tachko Tachev <tachko@mail.bg> To: root@ns1.my.tlan.net User-Agent: Mail.BG Webmail MIME-Version: 1.0 Content-Type: multipart/alternative;boundary="----=_20240502123636_21157" X-Priority: 3 (Normal) Importance: Normal X-Composed: 2024-05-02T12:36:36+03:00 ------=_20240502123636_21157 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable =0A=0A=0As ------=_20240502123636_21157 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable <p valid=3D"true" style=3D"line-height: 16px; font-size: 13px; font-family:= Tahoma, sans-serif; margin: 16px 0px;">s</p> ------=_20240502123636_21157-- ======================== Край на първо писмо ">======================== ======================== Начало на второ писмо ">======================== From tachkot@mail.bg Thu May 2 05:57:31 2024 Return-Path: <tachko@mail.bg> X-Original-To: root@my.tlan.net Delivered-To: root@my.tlan.net Received: from mx5.mail.bg (mx5.mail.bg [193.201.172.121]) by ns1.my.tlan.net (Postfix) with ESMTPS id 8CBD61407EF for <root@my.tlan.net>; Thu, 2 May 2024 05:57:31 -0400 (EDT) Received: from mail.bg (unknown [10.0.0.37]) by mx5.mail.bg (Postfix) with ESMTPA id 744998098D63 for <root@my.tlan.net>; Thu, 2 May 2024 12:57:29 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mail.bg; s=default; t=1714643849; bh=lL8bKvkqb9gxXzg1u4x297mwyNMr4/g0FGYK9id4QQY=; h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type; b=NqY5+Dg+JMwE0VcZCzO9F3fQdaCqDGaxPogvNFrNpmYB8FFJMFo9aLGmMGXdvJ/Rt sRvKy698XJZ75Ur+RaaZ1k6JFdpkWz/5FcJ4EAWAAKqor0Pk3ZHFoVZ4naxr7f3SK5 FdKuownOiuI1MeI4KbBTbz6KvJZaFtfoOHvjxAZY= Message-ID: <7a9524d64b38bb3326613e3009bfc85a.mailbg@mail.bg> Date: Thu, 2 May 2024 12:57:29 +0300 Subject: d From: Tachko Tachev <tachko@mail.bg> To: =?utf-8?B?cm9vdEBteS50bGFuLm5ldMKg?= <root@my.tlan.net> User-Agent: Mail.BG Webmail MIME-Version: 1.0 Content-Type: multipart/alternative;boundary="----=_20240502125729_78615" X-Priority: 3 (Normal) Importance: Normal X-Composed: 2024-05-02T12:57:29+03:00 ------=_20240502125729_78615 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable =0A=0A=0Ad ------=_20240502125729_78615 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable <p valid=3D"true" style=3D"line-height: 16px; font-size: 13px; font-family:= Tahoma, sans-serif; margin: 16px 0px;">d</p> ------=_20240502125729_78615-- ======================== Край на второ писмо ">======================== Надолу продължават още писма
Виждаме, че всички писма се записват в един файл. Не добра практика но за сега ще е така. Внимание !!! PostFix участва също и при получаване на ел. писмо. След като го получи трябва да го запише в някоя папка на сървъра. В случая ползва управление на пощенските кутии тип MBOX. От казаното до тук ще се зарадвате. Супер елементарен сървър се получи. Но не всичко е толкова хубаво. Първия проблем с който ще се сблъскате, е как да си прочетете писмата така, че нагледно да са разбираеми. Няма да можете да ползвате разни клиенти за управление на пощенски кутии от типа на Thunderbird защото те работят с протоколи POP3 или IMAP, за WEB клиенти да не говорим, те са от по-ново поколение и задължително изискват работа с IMAP протокол. Затова ни трябва някой който да изпълнява всичко горе споменато. На помощ идва MDА агент, примерно Dovecot.
Стигнахме до проблема с управление на пощенските кутии. За тази цел ще ползваме Dovecot. Той предоставя безопасен достъп до пощенските кутии по протоколи POP3 и IMAP. В случая PostFix получава писмото и го записва в /var/mail/root. Dovecot ще прочете писмото от файла. Втори вариант. Написали сме писмо през пощенски клиент и трябва да го пратим. Dovecot получава написаното писмо от клиента и го дава на PostFix да го изпрати. Много елементарно го обяснявам само за яснота, на практика нещата са по-сложни. Да инсталираме Dovecot и необходимите му плъгини.
apt install dovecot-pop3d dovecot-imapd -y service dovecot restart service dovecot status
Работи без грешки. Правим копие на конфигурационните файлове които на по-късен етап ще редактираме.
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.original cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.original cp /etc/dovecot/conf.d/auth-sql.conf.ext /etc/dovecot/conf.d/auth-sql.conf.ext.original cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.original cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.original cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.original cp /etc/dovecot/conf.d/15-mailboxes.conf /etc/dovecot/conf.d/15-mailboxes.conf.original cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.original cp /etc/dovecot/conf.d/20-lmtp.conf /etc/dovecot/conf.d/20-lmtp.conf.origianal cp /etc/dovecot/conf.d/15-lda.conf /etc/dovecot/conf.d/15-lda.conf.original cp /etc/dovecot/conf.d/90-quota.conf /etc/dovecot/conf.d/90-quota.conf.original
От тук ни вълнува къде ще се разположат пощенските кутии. За целта:
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location mail_location = mbox:~/mail:INBOX=/var/mail/%u
Ще ползваме стандарта mbox. Пощенските кутии ще се разположат в /var/mail/име на пощенския адрес. Променливата %u отговаря за потребителя на пощенската кутия. А от къде да знаем кои са потребителите и кои пощенски кутии ползват? Има няколко варианта на задачата. По-добрия е ползването на бази данни за тази цел. И ако погледнем снимките от началото на статията ще видим, че при получаване на поща PostFix се обръща за информация към базата данни, а при изпращане Dovecot работи с базата данни. PostFix и Dovecot разговарят помежду си чрез протокола LMTP. За сега обаче няма да ползваме SQL база данни. Ще работим с потребителите създадени в Debian. Значи имаме потребител root@ns1.my.tlan.net с пощенска кутия /var/mail/root и cccp@ns1.my.tlan.net с пощенска кутия /var/mail/cccp Сега да пратим писмо от външната поща tachko@mail.bg до cccp@my.tlan.net.. След това да проверим самата пощенска кутия на cccp. Но първо да проверим логовете.
cat /var/log/mail.log 2024-05-02T06:42:16.278134-04:00 ns1 postfix/smtpd[7082]: connect from mx5.mail.bg[193.201.172.121] 2024-05-02T06:42:16.487025-04:00 ns1 postfix/smtpd[7082]: 76DB8140121: client=mx5.mail.bg[193.201.172.121] 2024-05-02T06:42:16.507429-04:00 ns1 postfix/cleanup[7086]: 76DB8140121: message-id=<75c7f402c6bbc865773ad82d19a751f7.mailbg@mail.bg> 2024-05-02T06:42:16.508781-04:00 ns1 postfix/qmgr[3472]: 76DB8140121: from=<tachko@mail.bg>, size=1530, nrcpt=1 (queue active) 2024-05-02T06:42:16.508908-04:00 ns1 postfix/smtpd[7082]: disconnect from mx5.mail.bg[193.201.172.121] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7 2024-05-02T06:42:16.514284-04:00 ns1 postfix/local[7087]: 76DB8140121: to=<cccp@my.tlan.net>, relay=local, delay=0.03, delays=0.03/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) 2024-05-02T06:42:16.514406-04:00 ns1 postfix/qmgr[3472]: 76DB8140121: removed ls -l /var/mail/ total 12 -rw------- 1 cccp mail 3268 May 2 06:42 cccp -rw------- 1 root mail 7016 May 2 06:05 root
Получихме писмо до cccp@my.tlan.net и бе записано в /var/mail/cccp. Сега и самото писмо.
cat /var/mail/cccp
Писмо получено от tachko@mail.bg до cccp@my.tlan.net. Писмото е в много неразбираем формат. До тук: - инсталирахме PostFix - МТА, транспортен агент за изпращане/получаване на поща - инсталирахме Dovecot - МDА агент, агент за доставка на поща, PОP3, IMAP сървър за боравене с пощенските кутии - формата на боравене с пощенските кутии е mbox - PostFix и Dovecot работят помежду си и се допълват - не се задълбаваме в конфигурационните файлове на PostFix и Dovecot - ползваме потребители създаден в операционната система, а не специално за пощенския сървър - това е най-простата базисна настройка. Можем вече да преглеждаме пощата използвайки клиенти за тази цел от рода на Thunderbird на Firefox с много големи уговорки. Ние обаче продължаваме нататък. Ще ползваме WEB клиент за работа с пощенските кутии по протокола IMAP. Доста често ще боравим с протоколите POP3 и IMAP. Втория е по-иновативен, по-стабилен с повече възможности. Вършат една и съща работа. Разликата примерно е, че POP3 сваля писмото на клиентската програма, а IMAP ги управлява директно на сървъра. За изпратените писма същата логика. POP3 ги създава и пази в клиента, IMAP на сървъра.
За да ползваме Roundcube са необходими инсталирани WEB сървър наречен Apache и PHP с няколко приставки към него.
Ако сте следвали статиите за Debian 12 от инсталацията до тук, ще имате инсталирани Apache и PHP. Но независимо от това някои допълнения примерно за PHP ги нямаме. Ако пък направо сте започнали с тази статия ще се наложи да инсталирате Apache и PHP. За целта ще ги инсталираме наново все едно, че почваме работа от тази статия. Не е проблем, че са инсталирани преди това, просто системата ще каже че ги има и ще прескочи инсталираните, а тези които не са ще ги инсталира.
apt install apache2 apache2-utils -y apt install php libapache2-mod-php php-mysql php-net-ldap2 php-net-ldap3 php-imagick php-common php-gd php-imap php-json php-curl php-zip php-xml php-mbstring php-bz2 php-intl php-gmp php-net-smtp php-mail-mime -y
Roundcube е WEB базиран клиент за електронна поща. В случая обаче не ни трябва да го инсталираме от репозиторите, защото когато е от разработчика ще можем да ползваме тестовата му част. От https://roundcube.net/download/, намираме бутона Download на LTS version. Копираме линка на бутона (текущата версия). Изпълняваме следното:
cd /root wget sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.5.6/roundcubemail-1.5.6-complete.tar.gz ls -l total 7708 -rw-r--r-- 1 root root 7891534 Nov 5 09:39 roundcubemail-1.5.6-complete.tar.gz
Смъкнахме файла roundcubemail-1.5.6-complete.tar.gz в папката /root.
tar -xvf roundcubemail-1.5.6-complete.tar.gz mv ./roundcubemail-1.5.6 /etc/roundcube cd /etc/roundcube/ ls CHANGELOG.md SECURITY.md composer.json index.php program vendor INSTALL SQL composer.json-dist installer public_html LICENSE UPGRADING composer.lock logs skins README.md bin config plugins temp chown -R www-data:www-data /etc/roundcube/ chmod 755 /etc/roundcube/
Разархивираме roundcubemail-1.5.6-complete.tar.gz, преместихме го в /etc, едновременно с това преименувахме ./roundcubemail-1.5.6 в ./roundcube Стараем се да разположим файловете така, че все едно сме инсталирали програмата от репозиторите.
Да създадем база за Roundcube.
mysql -u root create database roundcube DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; create user rcuser@localhost identified by 'rcpass'; grant all privileges on roundcube.* to rcuser@localhost; flush privileges; quit mysql roundcube < /etc/roundcube/SQL/mysql.initial.sql
nano /etc/apache2/conf-available/roundcube.conf Alias /roundcube /etc/roundcube/ <Directory /etc/roundcube> AllowOverride None Options +Indexes +ExecCGI Order deny,allow Allow from all Require all granted </Directory> a2enconf roundcube systemctl reload apache2
В браузъра пишем: https://my.tlan.net/roundcube/
Всичко е правилно. Правилния линк е: https://my.tlan.net/roundcube/installer/
Всички проверки са OK. Натискаме бутона NEXT за продължение.
Тук правим една грешка нарочно. Инсталирали сме PostFix без да никакви настройки. Както идва от пакета. Нормално е да работи само на порт 25. Все още нямаме дефинирани сертификати. Проблема ще дойде от Use the current IMAP username and password for SMTP authentication. Не се указали никъде PostFix да се удостоверява, а тук го изискваме. Нарочно натъртвам на това място, на по-късен етап ще се разбере.
Тук порта е 143 (IMAP Start TLS).
Тук избираме кои допълнения към Roundcube ще ползваме. Лично аз ползвам managesieve и password. Не е грешка да изберете всички. Най-отдолу на страницата натискаме бутона CREATE CONFIG. Така създаваме конфигурационния файл за стартиране на Roundcube.
Конфигурационния файл е създаден в /var/www/html/roundcubemail/config. Нтискаме бутона CONTINUE за продължение.
Отново грешка. Отново нарочно направена. Да проверим:
ls -l /etc/ |grep roundcube drwxrwxr-x 13 cccp cccp 4096 Nov 5 04:11 roundcube ls -l /etc/roundcube/ total 440 drwxrwxr-x 2 cccp cccp 4096 Nov 5 04:11 bin -rw-rw-r-- 1 cccp cccp 201319 Nov 5 04:11 CHANGELOG.md -rw-rw-r-- 1 cccp cccp 1037 Nov 5 04:11 composer.json -rw-rw-r-- 1 cccp cccp 1110 Nov 5 04:11 composer.json-dist -rw-rw-r-- 1 cccp cccp 107413 Nov 5 04:11 composer.lock drwxrwxr-x 2 cccp cccp 4096 Nov 5 04:11 config -rw-rw-r-- 1 cccp cccp 11421 Nov 5 04:11 index.php -rw-rw-r-- 1 cccp cccp 12646 Nov 5 04:11 INSTALL drwxrwxr-x 3 cccp cccp 4096 Nov 5 04:11 installer -rw-rw-r-- 1 cccp cccp 35147 Nov 5 04:11 LICENSE drwxrwxr-x 2 cccp cccp 4096 Nov 5 04:11 logs drwxrwxr-x 36 cccp cccp 4096 Nov 5 04:11 plugins drwxrwxr-x 8 cccp cccp 4096 Nov 5 04:11 program drwxrwxr-x 3 cccp cccp 4096 Nov 5 04:11 public_html -rw-rw-r-- 1 cccp cccp 3852 Nov 5 04:11 README.md -rw-rw-r-- 1 cccp cccp 967 Nov 5 04:11 SECURITY.md drwxrwxr-x 5 cccp cccp 4096 Nov 5 04:11 skins drwxrwxr-x 7 cccp cccp 4096 Nov 5 04:11 SQL drwxrwxr-x 2 cccp cccp 4096 Nov 5 04:11 temp -rw-rw-r-- 1 cccp cccp 4657 Nov 5 04:11 UPGRADING drwxrwxr-x 14 cccp cccp 4096 Nov 5 04:11 vendor
Навсякъде собственика е cccp:cccp, а на нас ни трябва да е www-data:www-data. Да поправим грешката:
chown -R www-data:www-data /etc/roundcube
Натискаме върху линка Create config. Слизаме най-отдолу на страницата.
CREATE CONFIG
Всичко е наред.
Най-отдолу ни предупреждава след завършване на инсталацията да изтрием installer папката или да се убедим че enable_installer опцията във файла config.inc.php е със значение disabled. Същевременно с това имаме и опцията да тестваме. Имаме два потребителя root и cccp, още по време на инсталацията. Да създадем още един с права подобни на cccp.
adduser tachko Adding user `tachko' ... Adding new group `tachko' (1001) ... Adding new user `tachko' (1001) with group `tachko' ... Creating home directory `/home/tachko' ... Copying files from `/etc/skel' ... New password: password Retype new password: password passwd: password updated successfully Changing the user information for tachko Enter the new value, or press ENTER for the default Full Name []: Enter Room Number []: Enter Work Phone []: Enter Home Phone []: Enter Other []: Enter Is the information correct? [Y/n] Y
Нека да пратим тестово писмо от cccp@my.tlnan.net до tachko@my.tlan.net.
Натискаме бутона Send test mail.
Теста мина успешно. За да мине теста ни бяха необходими два потребителя, затова създадохме tachko на сървъра. Сега да тестваме и IMAP конфигурацията.
Отново теста мина успешно. Вече можем да ползваме Roundcube на https://my.tlan.net/roundcube/
Потребители имаме cccp и tachko. Да влезем като tachko.
Имаме 2 писма, защото теста го направих два пъти. Да пратим писмо до cccp@my.tlan.net
Натискаме бутона Изпрати.
Не се получи защото SMTP в Roundcube изисква име и парола, а ние не сме дефинирали в PostFix да изисква това. Да поправим Roundcube.
Забележете, размаркирахме Use the current IMAP username and password for SMTP authentication. Не сме настроили PostFix да се удостоверява с име и парола.
Обновяваме наново конфигурацията. UPDATE CONFIG
Наново да пратим писмото. Писмото се изпрати успешно. Ако проверим дали е дошло при cccp@my.tlan.net ще видим че е пристигнали. С това приключваме елементарния сървър за електронна поща. В следващите статии ще надграждаме сървъра. Ползвано видео: https://www.youtube.com/watch?v=IzG_Rbq_LmY