{"id":2506,"date":"2022-05-03T18:17:31","date_gmt":"2022-05-03T17:17:31","guid":{"rendered":"https:\/\/wordpress.pedrorotoli.com\/?p=2506"},"modified":"2022-06-18T00:38:27","modified_gmt":"2022-06-17T23:38:27","slug":"postfix-dovecot-roundcube-e-postfixadmin-no-debian-11-com-nginx-e-mariadb","status":"publish","type":"post","link":"https:\/\/wordpress.pedrorotoli.com\/?p=2506","title":{"rendered":"Postfix, Dovecot, Roundcube e PostfixAdmin no Debian 11 com Nginx e MariaDB"},"content":{"rendered":"<h3>Instalar Nginx, MariaDB e PHP<\/h3>\n<p>Ap\u00f3s atualizar e fazer as configura\u00e7\u00f5es iniciais \u00e9 poss\u00edvel come\u00e7ar o processo de instala\u00e7\u00e3o.<\/p>\n<pre>sudo apt install nginx mariadb-server php php-fpm php-cli php-mysql php-zip php-curl php-xml -y<\/pre>\n<p>Ap\u00f3s a instala\u00e7\u00e3o \u00e9 recomendado proteger a instala\u00e7\u00e3o, isso pode ser feito com o comando:<\/p>\n<pre>mysql_secure_installation<\/pre>\n<pre>Enter current password for root (enter for none): \r\nChange the root password? [Y\/n] Y\r\nNew password: \r\nRe-enter new password: \r\nRemove anonymous users? [Y\/n] Y\r\nDisallow root login remotely? [Y\/n] Y\r\nRemove test database and access to it? [Y\/n] Y\r\nReload privilege tables now? [Y\/n] Y<\/pre>\n<h3>Criar o user vmail<\/h3>\n<p>Esse user ficar\u00e1 respons\u00e1vel pelo armazenamento das mensagens, entre outras coisas, para o criar \u00e9 s\u00f3 executar os seguintes comandos:<\/p>\n<pre>useradd -r -u 150 -g mail -d \/var\/vmail -s \/sbin\/nologin -c \"Virtual Mail User\" vmail\r\nmkdir -p \/var\/vmail\r\nchmod -R 770 \/var\/vmail\r\nchown -R vmail:mail \/var\/vmail<\/pre>\n<p>Com isso esse user j\u00e1 est\u00e1 criado.<\/p>\n<h3>Criar a base de dados do PostfixAdmin<\/h3>\n<p>Essa base de dados ir\u00e1 conter todas as contas de email, entre no shell da MariaDB:<\/p>\n<pre>mysql -u root -p<\/pre>\n<p>Ap\u00f3s inserir a senha da conta root, insira os seguintes comandos:<\/p>\n<pre>CREATE DATABASE postfixadmin;\r\nGRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'Passw0rd';\r\nFLUSH PRIVILEGES;\r\nEXIT;<\/pre>\n<h3>Instalar o PostfixAdmin<\/h3>\n<p>Fa\u00e7a o download do PostfixAdmin.<\/p>\n<pre>wget https:\/\/webwerks.dl.sourceforge.net\/project\/postfixadmin\/postfixadmin-3.3.8\/PostfixAdmin%203.3.8.tar.gz<\/pre>\n<p>Extraia o seu conte\u00fado.<\/p>\n<pre>tar -xzf PostfixAdmin\\ 3.3.8.tar.gz<\/pre>\n<p>Mova o que foi extra\u00eddo para a pasta <span style=\"font-family: andale mono, monospace;\">\/var\/www\/html\/postfixadmin<\/span>.<\/p>\n<pre>mv postfixadmin-postfixadmin-7d04685 \/var\/www\/html\/postfixadmin<\/pre>\n<p>Crie a pasta <span style=\"font-family: andale mono, monospace;\">templates_c<\/span>.<\/p>\n<pre>mkdir \/var\/www\/html\/postfixadmin\/templates_c\r\nchown -R www-data: \/var\/www\/html\/postfixadmin\/<\/pre>\n<p>Crie o arquivo de configura\u00e7\u00e3o <span style=\"font-family: andale mono, monospace;\">config.local.php<\/span>.<\/p>\n<pre>emacs \/var\/www\/html\/postfixadmin\/config.local.php<\/pre>\n<p>E dentro dele coloque o seguinte conte\u00fado.<\/p>\n<pre>&lt;?php\r\n$CONF['configured'] = true;\r\n\r\n$CONF['database_type'] = 'mysqli';\r\n$CONF['database_host'] = 'localhost';\r\n$CONF['database_user'] = 'postfixadmin';\r\n$CONF['database_password'] = 'Passw0rd';\r\n$CONF['database_name'] = 'postfixadmin';\r\n\r\n$CONF['default_aliases'] = array (\r\n'abuse' =&gt; 'abuse@domain.com',\r\n'hostmaster' =&gt; 'hostmaster@domain.com',\r\n'postmaster' =&gt; 'postmaster@domain.com',\r\n'webmaster' =&gt; 'webmaster@domain.com'\r\n);\r\n\r\n$CONF['fetchmail'] = 'NO';\r\n$CONF['show_footer_text'] = 'NO';\r\n\r\n$CONF['quota'] = 'YES';\r\n$CONF['domain_quota'] = 'YES';\r\n$CONF['quota_multiplier'] = '1024000';\r\n$CONF['used_quotas'] = 'YES';\r\n$CONF['new_quota_table'] = 'YES';\r\n\r\n$CONF['aliases'] = '0';\r\n$CONF['mailboxes'] = '0';\r\n$CONF['maxquota'] = '0';\r\n$CONF['domain_quota_default'] = '0';\r\n?&gt;<\/pre>\n<p>Tenha aten\u00e7\u00e3o de que a senha \u00e9 a mesma que foi usada quando foi criado o user que ir\u00e1 fazer a gest\u00e3o dessa base de dados.<\/p>\n<p>Crie a estrutura da base de dados.<\/p>\n<pre>sudo -u www-data php \/var\/www\/html\/postfixadmin\/public\/upgrade.php<\/pre>\n<p>Criar a conta de administrador do PostfixAdmin.<\/p>\n<pre>bash \/var\/www\/html\/postfixadmin\/scripts\/postfixadmin-cli admin add<\/pre>\n<pre>Welcome to Postfixadmin-CLI v0.3\r\n---------------------------------------------------------------\r\n\r\nAdmin: \r\n&gt; admin@pedror.grsi\r\n\r\nPassword: \r\n&gt; abc123\r\n\r\nPassword (again): \r\n&gt; abc123\r\n\r\nSuper admin:\r\n(Super admins have access to all domains, can manage domains and admin accounts.) (y\/n) \r\n&gt; y\r\n\r\nDomain: \r\n&gt; pedror.grsi\r\n\r\nActive: (y\/n) \r\n&gt; y\r\n\r\nThe admin admin@domain.com has been added!\r\n\r\n---------------------------------------------------------------<\/pre>\n<p>Com isso o PostfixAdmin j\u00e1 est\u00e1 instalado.<\/p>\n<h3>Instalar o Postfix<\/h3>\n<p>Instale o Postfix com o seguinte comando.<\/p>\n<pre>apt install postfix postfix-mysql -y<\/pre>\n<figure id=\"attachment_2516\" aria-describedby=\"caption-attachment-2516\" style=\"width: 1676px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2516\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/001-Postfix-Configuration-No-configuration.png\" alt=\"Postfix Configuration - No configuration\" width=\"1676\" height=\"945\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/001-Postfix-Configuration-No-configuration.png 1676w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/001-Postfix-Configuration-No-configuration-512x289.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/001-Postfix-Configuration-No-configuration-768x433.png 768w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/001-Postfix-Configuration-No-configuration-1536x866.png 1536w\" sizes=\"auto, (max-width: 1676px) 100vw, 1676px\" \/><figcaption id=\"caption-attachment-2516\" class=\"wp-caption-text\">Postfix Configuration &#8211; No configuration<\/figcaption><\/figure>\n<p>Ser\u00e1 pedido para configurar o tipo de configura\u00e7\u00e3o, selecione <em>No configuration<\/em>.<\/p>\n<p>Depois de terminar a instala\u00e7\u00e3o \u00e9 preciso criar uma c\u00f3pia do arquivo <span style=\"font-family: andale mono, monospace;\">main.cf<\/span>.<\/p>\n<pre>cp \/etc\/postfix\/main.cf.proto \/etc\/postfix\/main.cf<\/pre>\n<p>Navegue at\u00e9 a pasta onde o Postfix foi instalado.<\/p>\n<pre>cd \/etc\/postfix<\/pre>\n<p>Crie uma pasta para armazenar os arquivos de configura\u00e7\u00e3o para o acesso \u00e0 base de dados do PostfixAdmin.<\/p>\n<pre>mkdir sql\r\ncd sql<\/pre>\n<p>Agora ser\u00e1 preciso criar v\u00e1rios arquivos de configura\u00e7\u00e3o.<\/p>\n<pre>emacs mysql_virtual_alias_maps.cf<\/pre>\n<p>E o su respectivo conte\u00fado.<\/p>\n<pre>user = postfixadmin\r\npassword = Passw0rd\r\nhosts = localhost\r\ndbname = postfixadmin\r\nquery = SELECT goto FROM alias WHERE address='%s' AND active = '1'<\/pre>\n<p>Repita para o resto dos arquivos.<\/p>\n<pre>emacs mysql_virtual_domains_maps.cf<\/pre>\n<pre>user = postfixadmin\r\npassword = Passw0rd\r\nhosts = localhost\r\ndbname = postfixadmin\r\nquery = SELECT domain FROM domain WHERE domain='%s' AND active = '1'<\/pre>\n<pre>emacs mysql_virtual_mailbox_maps.cf<\/pre>\n<pre>user = postfixadmin\r\npassword = Passw0rd\r\nhosts = localhost\r\ndbname = postfixadmin\r\nquery = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'<\/pre>\n<pre>emacs mysql_virtual_alias_domain_maps.cf<\/pre>\n<pre>user = postfixadmin\r\npassword = Passw0rd\r\nhosts = localhost\r\ndbname = postfixadmin\r\nquery = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'<\/pre>\n<pre>emacs mysql_virtual_alias_domain_mailbox_maps.cf<\/pre>\n<pre>user = postfixadmin\r\npassword = Passw0rd\r\nhosts = localhost\r\ndbname = postfixadmin\r\nquery = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'<\/pre>\n<pre>emacs mysql_virtual_mailbox_limit_maps.cf<\/pre>\n<pre>user = postfixadmin\r\npassword = Passw0rd\r\nhosts = localhost\r\ndbname = postfixadmin\r\nquery = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'<\/pre>\n<pre>emacs mysql_virtual_alias_domain_catchall_maps.cf<\/pre>\n<pre>user = postfixadmin\r\npassword = Passw0rd\r\nhosts = localhost\r\ndbname = postfixadmin\r\nquery = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'<\/pre>\n<p>Ou ent\u00e3o use o seguinte script para criar tudo automaticamente.<\/p>\n<pre>#!\/bin\/bash\r\n\r\necho \"user = postfixadmin\" &gt;&gt; mysql_virtual_alias_maps.cf\r\necho \"password = Passw0rd\" &gt;&gt; mysql_virtual_alias_maps.cf\r\necho \"hosts = localhost\" &gt;&gt; mysql_virtual_alias_maps.cf\r\necho \"dbname = postfixadmin\" &gt;&gt; mysql_virtual_alias_maps.cf\r\necho \"query = SELECT goto FROM alias WHERE address='%s' AND active = '1'\" &gt;&gt; mysql_virtual_alias_maps.cf\r\n\r\necho \"user = postfixadmin\" &gt;&gt; mysql_virtual_domains_maps.cf\r\necho \"password = Passw0rd\" &gt;&gt; mysql_virtual_domains_maps.cf\r\necho \"hosts = localhost\" &gt;&gt; mysql_virtual_domains_maps.cf\r\necho \"dbname = postfixadmin\" &gt;&gt; mysql_virtual_domains_maps.cf\r\necho \"query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'\" &gt;&gt; mysql_virtual_domains_maps.cf\r\n\r\necho \"user = postfixadmin\" &gt;&gt; mysql_virtual_mailbox_maps.cf\r\necho \"password = Passw0rd\" &gt;&gt; mysql_virtual_mailbox_maps.cf\r\necho \"hosts = localhost\" &gt;&gt; mysql_virtual_mailbox_maps.cf\r\necho \"dbname = postfixadmin\" &gt;&gt; mysql_virtual_mailbox_maps.cf\r\necho \"query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'\" &gt;&gt; mysql_virtual_mailbox_maps.cf\r\n\r\necho \"user = postfixadmin\" &gt;&gt; mysql_virtual_alias_domain_maps.cf\r\necho \"password = Passw0rd\" &gt;&gt; mysql_virtual_alias_domain_maps.cf\r\necho \"hosts = localhost\" &gt;&gt; mysql_virtual_alias_domain_maps.cf\r\necho \"dbname = postfixadmin\" &gt;&gt; mysql_virtual_alias_domain_maps.cf\r\necho \"query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'\" &gt;&gt; mysql_virtual_alias_domain_maps.cf\r\n\r\necho \"user = postfixadmin\" &gt;&gt; mysql_virtual_alias_domain_mailbox_maps.cf\r\necho \"password = Passw0rd\" &gt;&gt; mysql_virtual_alias_domain_mailbox_maps.cf\r\necho \"hosts = localhost\" &gt;&gt; mysql_virtual_alias_domain_mailbox_maps.cf\r\necho \"dbname = postfixadmin\" &gt;&gt; mysql_virtual_alias_domain_mailbox_maps.cf\r\necho \"query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'\" &gt;&gt; mysql_virtual_alias_domain_mailbox_maps.cf\r\n\r\necho \"user = postfixadmin\" &gt;&gt; mysql_virtual_mailbox_limit_maps.cf\r\necho \"password = Passw0rd\" &gt;&gt; mysql_virtual_mailbox_limit_maps.cf\r\necho \"hosts = localhost\" &gt;&gt; mysql_virtual_mailbox_limit_maps.cf\r\necho \"dbname = postfixadmin\" &gt;&gt; mysql_virtual_mailbox_limit_maps.cf\r\necho \"query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'\" &gt;&gt; mysql_virtual_mailbox_limit_maps.cf\r\n\r\necho \"user = postfixadmin\" &gt;&gt; mysql_virtual_alias_domain_catchall_maps.cf\r\necho \"password = Passw0rd\" &gt;&gt; mysql_virtual_alias_domain_catchall_maps.cf\r\necho \"hosts = localhost\" &gt;&gt; mysql_virtual_alias_domain_catchall_maps.cf\r\necho \"dbname = postfixadmin\" &gt;&gt; mysql_virtual_alias_domain_catchall_maps.cf\r\necho \"query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'\" &gt;&gt; mysql_virtual_alias_domain_catchall_maps.cf<\/pre>\n<p>Agora \u00e9 preciso configurar o Postfix para usar os arquivos de configura\u00e7\u00e3o.<\/p>\n<pre>postconf -e \"myhostname = $(hostname -f)\"\r\npostconf -e \"mydestination = localhost\"\r\npostconf -e \"mynetworks = 127.0.0.0\/8\"\r\npostconf -e \"inet_protocols = ipv4\"\r\npostconf -e \"inet_interfaces = all\"\r\npostconf -e \"smtpd_tls_cert_file = \/etc\/ssl\/certs\/ssl-cert-snakeoil.pem\"\r\npostconf -e \"smtpd_tls_key_file = \/etc\/ssl\/private\/ssl-cert-snakeoil.key\"\r\npostconf -e \"smtpd_use_tls = yes\"\r\npostconf -e \"smtpd_tls_auth_only = yes\"\r\npostconf -e \"smtpd_sasl_type = dovecot\"\r\npostconf -e \"smtpd_sasl_path = private\/auth\"\r\npostconf -e \"smtpd_sasl_auth_enable = yes\"\r\npostconf -e \"smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination\"\r\npostconf -e \"virtual_transport = lmtp:unix:private\/dovecot-lmtp\"\r\npostconf -e \"virtual_mailbox_domains = proxy:mysql:\/etc\/postfix\/sql\/mysql_virtual_domains_maps.cf\"\r\npostconf -e \"virtual_alias_maps = proxy:mysql:\/etc\/postfix\/sql\/mysql_virtual_alias_maps.cf, proxy:mysql:\/etc\/postfix\/sql\/mysql_virtual_alias_domain_maps.cf, proxy:mysql:\/etc\/postfix\/sql\/mysql_virtual_alias_domain_catchall_maps.cf\"\r\npostconf -e \"virtual_mailbox_maps = proxy:mysql:\/etc\/postfix\/sql\/mysql_virtual_mailbox_maps.cf, proxy:mysql:\/etc\/postfix\/sql\/mysql_virtual_alias_domain_mailbox_maps.cf\"\r\nmkfifo \/var\/spool\/postfix\/public\/pickup<\/pre>\n<p>Tenha aten\u00e7\u00e3o aos certificados, caso esteja usando certificados para o servidor, coloque os caminhos adequados nas linhas:<\/p>\n<pre>postconf -e \"smtpd_tls_cert_file = \/etc\/ssl\/certs\/ssl-cert-snakeoil.pem\"\r\npostconf -e \"smtpd_tls_key_file = \/etc\/ssl\/private\/ssl-cert-snakeoil.key\"<\/pre>\n<p>Edite o arquivo <span style=\"font-family: andale mono, monospace;\">\/etc\/postfix\/main.cf<\/span>.<\/p>\n<pre>emacs \/etc\/postfix\/main.cf<\/pre>\n<p>Comente as seguintes linhas:<\/p>\n<pre>sendmail_path =\r\nnewaliases_path =\r\nmailq_path =\r\nsetgid_group =\r\nhtml_directory =\r\nmanpage_directory =\r\nsample_directory =\r\nreadme_directory =<\/pre>\n<p>Para que fiquem assim:<\/p>\n<pre>#sendmail_path =\r\n#newaliases_path =\r\n#mailq_path =\r\n#setgid_group =\r\n#html_directory =\r\n#manpage_directory =\r\n#sample_directory =\r\n#readme_directory =<\/pre>\n<p>Editar o arquivo <span style=\"font-family: andale mono, monospace;\">\/etc\/postfix\/master.cf<\/span>.<\/p>\n<pre>emacs \/etc\/postfix\/master.cf<\/pre>\n<p>E modifique ou adicione as linhas de acordo.<\/p>\n<pre>smtp inet n - y - - smtpd\r\n#smtp inet n - y - 1 postscreen\r\n#smtpd pass - - y - - smtpd\r\n#dnsblog unix - - y - 0 dnsblog\r\n#tlsproxy unix - - y - 0 tlsproxy\r\nsubmission inet n - y - - smtpd\r\n-o syslog_name=postfix\/submission\r\n-o smtpd_tls_security_level=encrypt\r\n-o smtpd_sasl_auth_enable=yes\r\n# -o smtpd_reject_unlisted_recipient=no\r\n# -o smtpd_client_restrictions=$mua_client_restrictions\r\n# -o smtpd_helo_restrictions=$mua_helo_restrictions\r\n# -o smtpd_sender_restrictions=$mua_sender_restrictions\r\n# -o smtpd_recipient_restrictions=\r\n# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject\r\n-o smtpd_client_restrictions=permit_sasl_authenticated,reject\r\n-o milter_macro_daemon_name=ORIGINATING\r\nsmtps inet n - y - - smtpd\r\n-o syslog_name=postfix\/smtps\r\n# -o smtpd_tls_wrappermode=yes\r\n-o smtpd_sasl_auth_enable=yes\r\n# -o smtpd_reject_unlisted_recipient=no\r\n-o smtpd_client_restrictions=permit_sasl_authenticated,reject\r\n# -o smtpd_client_restrictions=$mua_client_restrictions\r\n# -o smtpd_helo_restrictions=$mua_helo_restrictions\r\n# -o smtpd_sender_restrictions=$mua_sender_restrictions\r\n# -o smtpd_recipient_restrictions=\r\n# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject\r\n-o milter_macro_daemon_name=ORIGINATING<\/pre>\n<h3>Instalar o Dovecot<\/h3>\n<p>Instale o Dovecot com o seguinte comando.<\/p>\n<pre>apt install dovecot-mysql dovecot-imapd dovecot-pop3d dovecot-lmtpd -y<\/pre>\n<p>Ser\u00e1 preciso editar algumas configura\u00e7\u00f5es do Dovecot, naveque at\u00e9 a pasta <span style=\"font-family: andale mono, monospace;\">\/etc\/dovecot\/conf.d<\/span>.<\/p>\n<pre>cd \/etc\/dovecot\/conf.d<\/pre>\n<p>Vamos editar o arquivo <span style=\"font-family: andale mono, monospace;\">10-auth.conf<\/span>.<\/p>\n<pre>emacs 10-auth.conf<\/pre>\n<pre># Na linha 100 fa\u00e7a essa altera\u00e7\u00e3o:\r\nauth_mechanisms = plain\r\n# para\r\nauth_mechanisms = plain login\r\n\r\n# Comente a linha 122\r\n#!include auth-system.conf.ext\r\n\r\n# E descomente a linha 123\r\n!include auth-sql.conf.ext<\/pre>\n<p>Edite o arquivo <span style=\"font-family: andale mono, monospace;\">10-mail.conf<\/span>.<\/p>\n<pre>emacs 10-mail.conf<\/pre>\n<pre># Altere as seguintes linhas\r\nmail_location = maildir:\/var\/vmail\/%d\/%n\r\nmail_uid = vmail\r\nmail_gid = mail\r\nmail_privileged_group = mail\r\nfirst_valid_uid = 150\r\nlast_valid_uid = 150<\/pre>\n<p>Certifique-se de que no arquivo <span style=\"font-family: andale mono, monospace;\">10-ssl.conf<\/span> tem o ssl ativo.<\/p>\n<pre>ssl = yes<\/pre>\n<p>Edite o arquivo <span style=\"font-family: andale mono, monospace;\">10-master.conf<\/span>.<\/p>\n<pre>emacs 10-master.conf<\/pre>\n<pre># Na linha 54 altere para que fique dessa maneira\r\nservice lmtp {\r\nunix_listener \/var\/spool\/postfix\/private\/dovecot-lmtp {\r\nmode = 0600\r\nuser = postfix\r\ngroup = postfix\r\n}\r\n}\r\n\r\n# Por volta d alinha 88, altere a sess\u00e3o service auth\r\nservice auth {\r\nunix_listener \/var\/spool\/postfix\/private\/auth {\r\nmode = 0666\r\nuser = postfix\r\ngroup = postfix\r\n}\r\n\r\nunix_listener auth-userdb {\r\nmode = 0600\r\nuser = vmail\r\n}\r\nuser = dovecot\r\n}\r\n\r\n# Altere service auth-worker\r\nservice auth-worker {\r\nuser = vmail\r\n}<\/pre>\n<p>Navegue para um n\u00edvel acima.<\/p>\n<pre>cd ..<\/pre>\n<p>Edite o arquivo <span style=\"font-family: andale mono, monospace;\">dovecot-sql.conf.ext<\/span>.<\/p>\n<pre>emacs dovecot-sql.conf.ext<\/pre>\n<pre>Adicione as sequintes linhas no final do arquivo.\r\n\r\ndriver = mysql\r\nconnect = host=localhost dbname=postfixadmin user=postfixadmin password=Passw0rd\r\ndefault_pass_scheme = MD5-CRYPT\r\npassword_query = SELECT username as user, password, '\/var\/vmail\/%d\/%n' as userdb_home, 'maildir:\/var\/vmail\/%d\/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'\r\nuser_query = SELECT '\/var\/vmail\/%d\/%u' as home, 'maildir:\/var\/vmail\/%d\/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'<\/pre>\n<p>Altere as permiss\u00f5es da pasta <span style=\"font-family: andale mono, monospace;\">\/etc\/dovecot<\/span>.<\/p>\n<pre>chown -R vmail:dovecot \/etc\/dovecot\r\nchmod -R o-rwx \/etc\/dovecot<\/pre>\n<p>Reinicie o Postfix e Dovecot.<\/p>\n<pre>systemctl restart postfix dovecot<\/pre>\n<h3>Configurar o config file do Nginx para acessar o PostfixAdmin<\/h3>\n<p>Navegue at\u00e9 a pasta <span style=\"font-family: andale mono, monospace;\">\/etc\/nginx\/sites-available<\/span>.<\/p>\n<pre>cd \/etc\/nginx\/sites-available<\/pre>\n<p>Crie o <em>config file<\/em> do PostfixAdmin.<\/p>\n<pre>emacs admin.pedror.grsi<\/pre>\n<p>E coloque o seguinte conte\u00fado.<\/p>\n<pre>server {\r\n        listen 80;\r\n        root \/var\/www\/html\/postfixadmin\/public;\r\n        index index.html index.htm index.php;\r\n        server_name admin.pedror.grsi;\r\n\r\n        allow 10.59.170.128\/26;\r\n        deny all;\r\n\r\n        location ~ \\.php$ {\r\n          fastcgi_split_path_info ^(.+\\.php)(\/.+)$;\r\n          fastcgi_pass unix:\/var\/run\/php\/php7.4-fpm.sock;\r\n          fastcgi_index index.php;\r\n          include fastcgi_params;\r\n          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\r\n          fastcgi_intercept_errors off;\r\n          fastcgi_buffer_size 16k;\r\n          fastcgi_buffers 4 16k;\r\n          fastcgi_connect_timeout 600;\r\n          fastcgi_send_timeout 600;\r\n          fastcgi_read_timeout 600;\r\n        }\r\n\r\n\r\n   location \/ {\r\n       try_files $uri $uri\/ =404;\r\n   }\r\n\r\n}<\/pre>\n<p>Preste aten\u00e7\u00e3o \u00e0s seguintes linhas.<\/p>\n<pre>allow 10.59.170.128\/26;\r\ndeny all;<\/pre>\n<p>Elas ir\u00e3o permitir que apenas computadores na rede <span style=\"font-family: andale mono, monospace;\">10.59.170.108\/26<\/span> possams acessar essa p\u00e1gina.<\/p>\n<p>Caso queira permitir o acesso \u00e0 m\u00e1quinas de qualquer rede, omita essas duas linhas.<\/p>\n<p>Crie um atalho na pasta <span style=\"font-family: andale mono, monospace;\">sites-enabled<\/span>.<\/p>\n<pre>ln -s \/etc\/nginx\/sites-available\/admin.pedror.grsi ..\/sites-enabled\/<\/pre>\n<p>Execute o seguinte comando para inicializar a base de dados de aliases do Postfix.<\/p>\n<pre>newaliases<\/pre>\n<p>Reinicie o Nginx.<\/p>\n<pre>service nginx restart<\/pre>\n<p>Acesse atrav\u00e9s do endere\u00e7o <span style=\"font-family: andale mono, monospace;\">http:\/\/admin.pedror.grsi\/setup.php<\/span><\/p>\n<figure id=\"attachment_2532\" aria-describedby=\"caption-attachment-2532\" style=\"width: 1293px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2532\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/002-Setup-do-PostfixAdmin.png\" alt=\"Setup do PostfixAdmin\" width=\"1293\" height=\"845\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/002-Setup-do-PostfixAdmin.png 1293w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/002-Setup-do-PostfixAdmin-512x335.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/002-Setup-do-PostfixAdmin-768x502.png 768w\" sizes=\"auto, (max-width: 1293px) 100vw, 1293px\" \/><figcaption id=\"caption-attachment-2532\" class=\"wp-caption-text\">Setup do PostfixAdmin<\/figcaption><\/figure>\n<p>Com isso j\u00e1 temos acesso ao PostfixAdmin.<\/p>\n<figure id=\"attachment_2533\" aria-describedby=\"caption-attachment-2533\" style=\"width: 1293px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2533\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/003-Setup-Password-do-PostfixAdmin.png\" alt=\"Setup Password do PostfixAdmin\" width=\"1293\" height=\"845\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/003-Setup-Password-do-PostfixAdmin.png 1293w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/003-Setup-Password-do-PostfixAdmin-512x335.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/003-Setup-Password-do-PostfixAdmin-768x502.png 768w\" sizes=\"auto, (max-width: 1293px) 100vw, 1293px\" \/><figcaption id=\"caption-attachment-2533\" class=\"wp-caption-text\">Setup Password do PostfixAdmin<\/figcaption><\/figure>\n<p>Em <em>Setup password<\/em> coloque uma senha e clique em <em>Generate setup_password hash<\/em>.<\/p>\n<p>Copie a linha\u00a0 que foi gerada abaixo e a cole no arquivo <span style=\"font-family: andale mono, monospace;\">\/var\/www\/html\/postfixadmin\/config.local.php<\/span>, logo abaixo de <span style=\"font-family: andale mono, monospace;\">$CONF[&#8216;domain_quota_default&#8217;] = &#8216;0&#8217;;<\/span>.<\/p>\n<pre>$CONF['setup_password'] = '$2y$10$JeBgsBKghR4CRW9OqSjrMuK.ddTxhe0d6FC8VNCyulYUhDO9QfCGG';<\/pre>\n<h3>Instalar o Roundcube<\/h3>\n<p>Fa\u00e7a o download do Roundcube.<\/p>\n<pre>wget https:\/\/github.com\/roundcube\/roundcubemail\/releases\/download\/1.4.6\/roundcubemail-1.4.6-complete.tar.gz<\/pre>\n<p>Extraia o seu conte\u00fado.<\/p>\n<pre>tar -xzf roundcubemail-1.4.6-complete.tar.gz<\/pre>\n<p>Mova para a pasta <span style=\"font-family: andale mono, monospace;\">\/var\/www\/roundcube<\/span>.<\/p>\n<pre>mv roundcubemail-1.4.6 \/var\/www\/roundcube<\/pre>\n<p>Mude o dono da pasta.<\/p>\n<pre>chown -R www-data: \/var\/www\/roundcube<\/pre>\n<p>Instalar o <em>composer<\/em>, um gestor de depend\u00eancias PHP.<\/p>\n<pre>apt install composer -y<\/pre>\n<p>Navegue at\u00e9 <span style=\"font-family: andale mono, monospace;\">\/var\/www\/roundcube<\/span>.<\/p>\n<pre>cd \/var\/www\/roundcube<\/pre>\n<p>Executar o <em>composer<\/em> para instalar as depend\u00eancias em falta.<\/p>\n<pre>composer install --no-dev<\/pre>\n<p>Crie a base de dados para o Roundcube.<\/p>\n<pre>mysql -u root -p<\/pre>\n<pre>CREATE DATABASE roundcube DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;\r\nCREATE USER roundcubeuser@localhost IDENTIFIED BY 'Passw0rd';\r\nGRANT ALL PRIVILEGES ON roundcube.* TO roundcubeuser@localhost;\r\nFLUSH PRIVILEGES;\r\nEXIT;<\/pre>\n<p>Crie a estrutura da base de dados.<\/p>\n<pre>sudo mysql roundcube &lt; \/var\/www\/roundcube\/SQL\/mysql.initial.sql<\/pre>\n<p>Agora \u00e9 preciso criar o config file do Nginx para o Roundcube, o processo \u00e9 o mesmo que foi feito anteriormente.<\/p>\n<p>Coloque o seguinte conte\u00fado no arquivo.<\/p>\n<pre>server {\r\n        listen 80;\r\n        root \/var\/www\/roundcube\/;\r\n        index index.html index.htm index.php;\r\n        server_name webmail.pedror.grsi;\r\n\r\n        error_log \/var\/log\/nginx\/roundcube.error;\r\n        access_log \/var\/log\/nginx\/roundcube.access;\r\n\r\n        location \/ {\r\n                 try_files $uri $uri\/ \/index.php;\r\n        }\r\n\r\n        location ~ \\.php$ {\r\n                 try_files $uri =404;\r\n                 fastcgi_pass unix:\/run\/php\/php7.4-fpm.sock;\r\n                 fastcgi_index index.php;\r\n                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\r\n                 include fastcgi_params;\r\n        }\r\n\r\n        location ~ \/.well-known\/acme-challenge {\r\n                 allow all;\r\n        }\r\n        location ~ ^\/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {\r\n                 deny all;\r\n        }\r\n        location ~ ^\/(bin|SQL)\/ {\r\n                 deny all;\r\n        }\r\n        # A long browser cache lifetime can speed up repeat visits to your page\r\n        location ~* \\.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {\r\n                 access_log        off;\r\n                 log_not_found     off;\r\n                 expires           360d;\r\n        }\r\n}<\/pre>\n<p>Crie um link para a pasta <span style=\"font-family: andale mono, monospace;\">sites-enabled<\/span> e reinicie ou recarregue o servi\u00e7o do Nginx.<\/p>\n<p>Acesse a p\u00e1gina de configura\u00e7\u00e3o atrav\u00e9s da seguinte URL.<\/p>\n<p><span style=\"font-family: andale mono, monospace;\">http:\/\/webmail.pedror.grsi\/installer<\/span><\/p>\n<figure id=\"attachment_2538\" aria-describedby=\"caption-attachment-2538\" style=\"width: 1293px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2538\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/004-Roundcube-Webmail-Installer.png\" alt=\"Roundcube Webmail Installer\" width=\"1293\" height=\"845\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/004-Roundcube-Webmail-Installer.png 1293w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/004-Roundcube-Webmail-Installer-512x335.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/004-Roundcube-Webmail-Installer-768x502.png 768w\" sizes=\"auto, (max-width: 1293px) 100vw, 1293px\" \/><figcaption id=\"caption-attachment-2538\" class=\"wp-caption-text\">Roundcube Webmail Installer<\/figcaption><\/figure>\n<p>Aqui pode verificar v\u00e1rios par\u00e2metros da instala\u00e7\u00e3o, depois de verificar tudo, clique em <em>NEXT<\/em> no final da p\u00e1gina.<\/p>\n<figure id=\"attachment_2539\" aria-describedby=\"caption-attachment-2539\" style=\"width: 1293px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2539\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/005-Confgiuracao-do-Roundcube.png\" alt=\"Confgiura\u00e7\u00e3o do Roundcube\" width=\"1293\" height=\"845\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/005-Confgiuracao-do-Roundcube.png 1293w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/005-Confgiuracao-do-Roundcube-512x335.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/005-Confgiuracao-do-Roundcube-768x502.png 768w\" sizes=\"auto, (max-width: 1293px) 100vw, 1293px\" \/><figcaption id=\"caption-attachment-2539\" class=\"wp-caption-text\">Confgiura\u00e7\u00e3o do Roundcube<\/figcaption><\/figure>\n<p>Aqui iremos fazer algumas altera\u00e7\u00f5es.<\/p>\n<p>Em Database setup coloque o seguinte.<\/p>\n<pre>localhost\r\nroundcube\r\nroundcubeuser\r\nPassw0rd<\/pre>\n<p>Depois clique em <em>CREATE CONFIG<\/em> no final da p\u00e1gina.<\/p>\n<p>J\u00e1 pode fechar essa p\u00e1gina.<\/p>\n<p>Agora ser\u00e1 preciso editar o arquivo <span style=\"font-family: andale mono, monospace;\">\/var\/www\/roundcube\/config\/config.inc.php<\/span>.<\/p>\n<pre>emacs \/var\/www\/roundcube\/config\/config.inc.php<\/pre>\n<p>Fa\u00e7a as seguintes altera\u00e7\u00f5es.<\/p>\n<pre>$config['default_host'] = 'mail.pedror.grsi';\r\n$config['smtp_server'] = 'tls:\/\/mail.pedror.grsi';\r\n$config['smtp_port'] = 587;\r\n\r\n# E colocar no final do arquivo\r\n\r\n$config['smtp_conn_options'] = [\r\n  'ssl' =&gt; [\r\n        'verify_peer' =&gt; false,\r\n        'verify_peer_name' =&gt; false,\r\n  ],\r\n];<\/pre>\n<p>Depois disso remova a pasta <span style=\"font-family: andale mono, monospace;\">installer<\/span> que est\u00e1 em <span style=\"font-family: andale mono, monospace;\">\/var\/www\/roundcube<\/span>.<\/p>\n<p>Agora \u00e9 preciso criar alguns dom\u00ednios e caixas de correio atrav\u00e9s do PostfixAdmin.<\/p>\n<p>Acesse o PostfixAdmin atrav\u00e9s do seguinte endere\u00e7o.<\/p>\n<p><span style=\"font-family: andale mono, monospace;\">http:\/\/admin.pedror.grsi\/<\/span><\/p>\n<p>E fa\u00e7a login com a conta de administrador que foi configurada anteriormente.<\/p>\n<figure id=\"attachment_2540\" aria-describedby=\"caption-attachment-2540\" style=\"width: 1310px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2540\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/006-PostfixAdmin.png\" alt=\"PostfixAdmin\" width=\"1310\" height=\"845\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/006-PostfixAdmin.png 1310w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/006-PostfixAdmin-512x330.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/006-PostfixAdmin-768x495.png 768w\" sizes=\"auto, (max-width: 1310px) 100vw, 1310px\" \/><figcaption id=\"caption-attachment-2540\" class=\"wp-caption-text\">PostfixAdmin<\/figcaption><\/figure>\n<p>Para adicionar um novo dom\u00ednio, clique em <strong>Domain List -&gt; New Domain.<\/strong><\/p>\n<figure id=\"attachment_2541\" aria-describedby=\"caption-attachment-2541\" style=\"width: 927px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2541\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/007-Adicionar-novo-dominio.png\" alt=\"Adicionar novo dom\u00ednio\" width=\"927\" height=\"1141\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/007-Adicionar-novo-dominio.png 927w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/007-Adicionar-novo-dominio-416x512.png 416w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/007-Adicionar-novo-dominio-768x945.png 768w\" sizes=\"auto, (max-width: 927px) 100vw, 927px\" \/><figcaption id=\"caption-attachment-2541\" class=\"wp-caption-text\">Adicionar novo dom\u00ednio<\/figcaption><\/figure>\n<p>Configure o dom\u00ednio como desejar e clique em <em>Add Domain<\/em>.<\/p>\n<p>Adicione os dom\u00ednios que deseje dessa maneira.<\/p>\n<p>Para ver os dom\u00ednios dispon\u00edveis clique em <strong>Domain List -&gt; Domain List<\/strong>.<\/p>\n<figure id=\"attachment_2542\" aria-describedby=\"caption-attachment-2542\" style=\"width: 1196px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2542\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/008-Lista-de-dominios.png\" alt=\"Lista de dom\u00ednios\" width=\"1196\" height=\"699\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/008-Lista-de-dominios.png 1196w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/008-Lista-de-dominios-512x299.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/008-Lista-de-dominios-768x449.png 768w\" sizes=\"auto, (max-width: 1196px) 100vw, 1196px\" \/><figcaption id=\"caption-attachment-2542\" class=\"wp-caption-text\">Lista de dom\u00ednios<\/figcaption><\/figure>\n<p>Acima podemos ver os dom\u00ednios dispon\u00edveis.<\/p>\n<p>Para adicionar caixas de correio clique em <strong>Virtual List -&gt; Add Mailbox<\/strong>.<\/p>\n<figure id=\"attachment_2543\" aria-describedby=\"caption-attachment-2543\" style=\"width: 1179px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2543\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/009-Adicionar-nova-caixa-de-correio.png\" alt=\"Adicionar nova caixa de correio\" width=\"1179\" height=\"1049\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/009-Adicionar-nova-caixa-de-correio.png 1179w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/009-Adicionar-nova-caixa-de-correio-512x456.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/009-Adicionar-nova-caixa-de-correio-768x683.png 768w\" sizes=\"auto, (max-width: 1179px) 100vw, 1179px\" \/><figcaption id=\"caption-attachment-2543\" class=\"wp-caption-text\">Adicionar nova caixa de correio<\/figcaption><\/figure>\n<p>Escolha o username, e abaixo, no <em>drop-down menu<\/em>, o dom\u00ednio dispon\u00edvel, configure como desejar e clique em <em>Add Mailbox<\/em>.<\/p>\n<p>Repita os passos para o resto das caixas de correio.<\/p>\n<p>E para ver as caixas de correio dispon\u00edveis em cada dom\u00ednio, clique em <strong>Virtual List -&gt; Virtual List<\/strong>.<\/p>\n<figure id=\"attachment_2544\" aria-describedby=\"caption-attachment-2544\" style=\"width: 1091px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2544\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/010-Caixas-de-correio-disponiveis.png\" alt=\"Caixas de correio dispon\u00edveis\" width=\"1091\" height=\"1322\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/010-Caixas-de-correio-disponiveis.png 1091w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/010-Caixas-de-correio-disponiveis-423x512.png 423w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/010-Caixas-de-correio-disponiveis-768x931.png 768w\" sizes=\"auto, (max-width: 1091px) 100vw, 1091px\" \/><figcaption id=\"caption-attachment-2544\" class=\"wp-caption-text\">Caixas de correio dispon\u00edveis<\/figcaption><\/figure>\n<p>Para ver as caixas de correio dos diferentes dom\u00ednios, \u00e9 s\u00f3 selecionas o que deseja ver atrav\u00e9s do <em>drop-down menu<\/em> na paste de cima da janela.<\/p>\n<p>E com isso j\u00e1 \u00e9 poss\u00edvel acessar os emails atrav\u00e9s do Roundcunbe no endere\u00e7o <span style=\"font-family: andale mono, monospace;\">http:\/\/webmail.pedror.grsi\/<\/span>.<\/p>\n<figure id=\"attachment_2545\" aria-describedby=\"caption-attachment-2545\" style=\"width: 1108px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2545\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/011-Caixa-de-correio-do-user-torvalds@faxes.ctt_.png\" alt=\"Caixa de correio do user torvalds@faxes.ctt\" width=\"1108\" height=\"765\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/011-Caixa-de-correio-do-user-torvalds@faxes.ctt_.png 1108w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/011-Caixa-de-correio-do-user-torvalds@faxes.ctt_-512x354.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/011-Caixa-de-correio-do-user-torvalds@faxes.ctt_-768x530.png 768w\" sizes=\"auto, (max-width: 1108px) 100vw, 1108px\" \/><figcaption id=\"caption-attachment-2545\" class=\"wp-caption-text\">Caixa de correio do user torvalds@faxes.ctt<\/figcaption><\/figure>\n<p>J\u00e1 podemos fazer testes de envio e recebimento.<\/p>\n<figure id=\"attachment_2546\" aria-describedby=\"caption-attachment-2546\" style=\"width: 1108px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2546\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/012-Mensagem-enviada-para-uma-caixa-de-correio-do-Exchange.png\" alt=\"Mensagem enviada para uma caixa de correio do Exchange\" width=\"1108\" height=\"765\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/012-Mensagem-enviada-para-uma-caixa-de-correio-do-Exchange.png 1108w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/012-Mensagem-enviada-para-uma-caixa-de-correio-do-Exchange-512x354.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/012-Mensagem-enviada-para-uma-caixa-de-correio-do-Exchange-768x530.png 768w\" sizes=\"auto, (max-width: 1108px) 100vw, 1108px\" \/><figcaption id=\"caption-attachment-2546\" class=\"wp-caption-text\">Mensagem enviada para uma caixa de correio do Exchange<\/figcaption><\/figure>\n<figure id=\"attachment_2547\" aria-describedby=\"caption-attachment-2547\" style=\"width: 1244px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2547\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/013-Mensagem-recebida-no-Exchange.png\" alt=\"Mensagem recebida no Exchange\" width=\"1244\" height=\"794\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/013-Mensagem-recebida-no-Exchange.png 1244w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/013-Mensagem-recebida-no-Exchange-512x327.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/013-Mensagem-recebida-no-Exchange-768x490.png 768w\" sizes=\"auto, (max-width: 1244px) 100vw, 1244px\" \/><figcaption id=\"caption-attachment-2547\" class=\"wp-caption-text\">Mensagem recebida no Exchange<\/figcaption><\/figure>\n<figure id=\"attachment_2548\" aria-describedby=\"caption-attachment-2548\" style=\"width: 1244px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2548\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/014-Responsta-enviada-do-Exchange-para-o-Linux.png\" alt=\"Responsta enviada do Exchange para o Linux\" width=\"1244\" height=\"794\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/014-Responsta-enviada-do-Exchange-para-o-Linux.png 1244w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/014-Responsta-enviada-do-Exchange-para-o-Linux-512x327.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/014-Responsta-enviada-do-Exchange-para-o-Linux-768x490.png 768w\" sizes=\"auto, (max-width: 1244px) 100vw, 1244px\" \/><figcaption id=\"caption-attachment-2548\" class=\"wp-caption-text\">Responsta enviada do Exchange para o Linux<\/figcaption><\/figure>\n<figure id=\"attachment_2549\" aria-describedby=\"caption-attachment-2549\" style=\"width: 1108px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2549\" src=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/015-Resposta-recebida.png\" alt=\"Resposta recebida\" width=\"1108\" height=\"765\" srcset=\"https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/015-Resposta-recebida.png 1108w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/015-Resposta-recebida-512x354.png 512w, https:\/\/wordpress.pedrorotoli.com\/wp-content\/uploads\/2022\/05\/015-Resposta-recebida-768x530.png 768w\" sizes=\"auto, (max-width: 1108px) 100vw, 1108px\" \/><figcaption id=\"caption-attachment-2549\" class=\"wp-caption-text\">Resposta recebida<\/figcaption><\/figure>\n<p>E com isso temos um servidor de email funcional.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Instalar Nginx, MariaDB e PHP Ap\u00f3s atualizar e fazer as configura\u00e7\u00f5es iniciais \u00e9 poss\u00edvel come\u00e7ar o processo de instala\u00e7\u00e3o. sudo apt install nginx mariadb-server php<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[81,23],"tags":[11,90,86,88,87,89,91,92],"class_list":["post-2506","post","type-post","status-publish","format-standard","hentry","category-email","category-linux","tag-debian","tag-dovecot","tag-email","tag-mariadb","tag-nginx","tag-postfix","tag-postfixadmin","tag-roundcube"],"_links":{"self":[{"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/posts\/2506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2506"}],"version-history":[{"count":29,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/posts\/2506\/revisions"}],"predecessor-version":[{"id":2716,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=\/wp\/v2\/posts\/2506\/revisions\/2716"}],"wp:attachment":[{"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.pedrorotoli.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}