Current Path : /var/www/html/clients/wiki.e-nk.ru/data/cache/b/ |
Current File : /var/www/html/clients/wiki.e-nk.ru/data/cache/b/be621d778dea376644b4b5957bef65fe.i |
a:477:{i:0;a:3:{i:0;s:14:"document_start";i:1;a:0:{}i:2;i:0;}i:1;a:3:{i:0;s:6:"header";i:1;a:3:{i:0;s:73:"Установка почтового сервера на базе Ubuntu";i:1;i:3;i:2;i:1;}i:2;i:1;}i:2;a:3:{i:0;s:12:"section_open";i:1;a:1:{i:0;i:3;}i:2;i:1;}i:3;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1;}i:4;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:463:"Introduction In this setup is for a small to medium sized email server with Postfix virtual mailboxes which can be used for multiple domains and non-Linux accounts. If you are new to Postfix please read PostfixBasicSetupHowto to understand the basics before proceeding with this Howto. Also, information is presented about integration with ClamSMTP (an SMTP filter for Postfix) and other mail servers that check for viruses (using the ClamAV anti-virus software).";}i:2;i:84;}i:5;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:547;}i:6;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:547;}i:7;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:146:"Example Setup In this example emails are hosted for two separate domains, domain1.com and domain2.com. (Replace these with your own domain names.)";}i:2;i:549;}i:8;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:695;}i:9;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:695;}i:10;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:44:"Install Postfix Install the postfix package.";}i:2;i:697;}i:11;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:741;}i:12;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:741;}i:13;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:217:"For convenience in testing mail delivery, also install mailx package for use as command line mail utility program. (mailx is a dummy package for one of three mail programs, the most widely used of which is bsd-mailx.)";}i:2;i:743;}i:14;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:960;}i:15;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:960;}i:16;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:372:"Set Postfix Support for Maildir style Mailboxes Maildir is an e-mail spool format that does not require file-locking to maintain message integrity because the messages are kept in separate files with unique names. A Maildir is a directory (often named Maildir) with three subdirectories named tmp, new, and cur. The subdirectories should all reside on the same filesystem.";}i:2;i:962;}i:17;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1334;}i:18;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1334;}i:19;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:40:"Please find out more about Maildir here.";}i:2;i:1336;}i:20;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1376;}i:21;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1376;}i:22;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:62:" sudo vi /etc/postfix/main.cf Add the following code segment:";}i:2;i:1379;}i:23;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1441;}i:24;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1441;}i:25;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:72:"home_mailbox = Maildir/ Comment the line mailbox_command = procmail -a ";}i:2;i:1444;}i:26;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:1516;}i:27;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"$EXTENSION";}i:2;i:1517;}i:28;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:1527;}i:29;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:". It will not be used.";}i:2;i:1528;}i:30;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1550;}i:31;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1550;}i:32;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:38:"Restart Postfix to effect the changes.";}i:2;i:1552;}i:33;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1590;}i:34;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1590;}i:35;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:231:"sudo /etc/init.d/postfix restart Postfix virtual Mailboxes for separate domains and Non-Linux accounts As a system hosts more and more domains and users, it becomes less desirable to give every user their own Linux system account.";}i:2;i:1593;}i:36;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:1824;}i:37;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:1824;}i:38;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:328:"With the Postfix virtual mailbox delivery agent, every recipient address can have its own virtual mailbox. Unlike virtual alias domains, virtual mailbox domains do not need the translation from each recipient addresses into a different address, and owners of a virtual mailbox address do not need to have a Linux system account.";}i:2;i:1826;}i:39;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2154;}i:40;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2154;}i:41;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:244:"The Postfix virtual mailbox delivery agent looks up the user mailbox pathname, uid and gid via separate tables that are searched with the recipient's mail address. Maildir style delivery is designated by terminating the mailbox pathname with a ";}i:2;i:2156;}i:42;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:2400;}i:43;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:"/";}i:2;i:2401;}i:44;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:2402;}i:45;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:".";}i:2;i:2403;}i:46;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2404;}i:47;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2404;}i:48;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:63:"The following figure shows a directory structure for mailboxes.";}i:2;i:2406;}i:49;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2469;}i:50;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2469;}i:51;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:"VhostsDomains.png";}i:2;i:2471;}i:52;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2488;}i:53;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2488;}i:54;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:398:"It is best to transfer all domains into virtual mailboxes. Even if you have setup postfix with one domain, make that domain a virtual domain. You aren't required to do this, but doing it this will give you a well organized mail system from the outset. Having Postfix host one real domain and the rest virtual means that you will always need to configure Postfix twice: once for each type of domain.";}i:2;i:2490;}i:55;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2888;}i:56;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2888;}i:57;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:46:"Change the myhostname line in main.cf to read:";}i:2;i:2890;}i:58;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:2936;}i:59;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:2936;}i:60;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:185:"myhostname = localhost Note: Using localhost as myhostname can cause problems since this variable is used in the EHLO message the server sends. If you are unable to send messages due to";}i:2;i:2939;}i:61;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3124;}i:62;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3124;}i:63;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:116:"550 Access denied - Invalid HELO name (See RFC2821 4.1.1.1) (in reply to MAIL FROM command)) then this is the cause.";}i:2;i:3126;}i:64;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3242;}i:65;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3242;}i:66;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:30:"Create a virtual Mailbox owner";}i:2;i:3245;}i:67;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3275;}i:68;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3275;}i:69;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:178:"In our setup all virtual mailboxes are owned by a fixed uid and gid 5000. (If this is not what you want, specify lookup tables that are searched by the recipient's mail address.)";}i:2;i:3277;}i:70;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3455;}i:71;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3455;}i:72;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:"To create a virtual mailbox group:";}i:2;i:3457;}i:73;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3491;}i:74;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3491;}i:75;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:62:"sudo groupadd -g 5000 vmail To create a virtual mailbox owner:";}i:2;i:3494;}i:76;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3556;}i:77;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3556;}i:78;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:63:"sudo useradd -m -u 5000 -g 5000 -s /bin/bash vmail Edit main.cf";}i:2;i:3558;}i:79;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3621;}i:80;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3621;}i:81;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:68:"sudo vi /etc/postfix/main.cf Set up Postfix to use virtual mailboxes";}i:2;i:3624;}i:82;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3692;}i:83;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3692;}i:84;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:41:"Add the following code segment to main.cf";}i:2;i:3694;}i:85;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:3735;}i:86;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:3735;}i:87;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:423:"virtual_mailbox_domains = /etc/postfix/vhosts virtual_mailbox_base = /home/vmail virtual_mailbox_maps = hash:/etc/postfix/vmaps virtual_minimum_uid = 1000 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 In the first line is used a text file called vhosts. (You can name this anything you want.) Inside this text file will be a simple one-column list of all the domains you are hosting. Add your domains there.";}i:2;i:3737;}i:88;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:4160;}i:89;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:4160;}i:90;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:96:"sudo vi /etc/postfix/vhosts Obviously, use your own domain names instead of the domain examples:";}i:2;i:4163;}i:91;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:4259;}i:92;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:4259;}i:93;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:189:"domain1.com domain2.com The next line virtual_mailbox_base specifies the base directory where the mail will be stored. (Again, you can choose anything you want.) In our case it will be the ";}i:2;i:4262;}i:94;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:4451;}i:95;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:"'vmail";}i:2;i:4453;}i:96;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:4459;}i:97;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:56:"' subdirectory of the owner's home directory /home/vmail";}i:2;i:4461;}i:98;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:4517;}i:99;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:4517;}i:100;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:43:"The third line points to a text file named ";}i:2;i:4519;}i:101;a:3:{i:0;s:14:"monospace_open";i:1;a:0:{}i:2;i:4562;}i:102;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:6:"'vmaps";}i:2;i:4564;}i:103;a:3:{i:0;s:15:"monospace_close";i:1;a:0:{}i:2;i:4570;}i:104;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:329:"'. This is a two column text file. The first column specifies a virtual email address. The second column specifies the person's mailbox location. Just like with real domain hosting, if you specify a / at the end of the location, it designates a Maildir format. (If not, it is mbox.) In this Howto we are using the Maildir format.";}i:2;i:4572;}i:105;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:4901;}i:106;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:4901;}i:107;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"Setup this file:";}i:2;i:4903;}i:108;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:4919;}i:109;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:4919;}i:110;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:55:"sudo vi /etc/postfix/vmaps The format should look like:";}i:2;i:4922;}i:111;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:4977;}i:112;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:4977;}i:113;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:244:"info@domain1.com domain1.com/info/ alias@domain1.com domain1.com/info/ sales@domain1.com domain1.com/sales/ info@domain2.com domain2.com/info/ sales@domain2.com domain2.com/sales/ Note: To make an alias, map to same folder as another user.";}i:2;i:4980;}i:114;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5224;}i:115;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5224;}i:116;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:42:"Convert vmaps into a hash file by running:";}i:2;i:5226;}i:117;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5268;}i:118;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5268;}i:119;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:104:"sudo postmap /etc/postfix/vmaps Remember to execute the above command every time when you add a new map.";}i:2;i:5270;}i:120;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5374;}i:121;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5374;}i:122;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:48:"Restart Postfix to make the changes take effect.";}i:2;i:5376;}i:123;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5424;}i:124;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5424;}i:125;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:67:"sudo /etc/init.d/postfix restart My example config now looks like:";}i:2;i:5427;}i:126;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5494;}i:127;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5494;}i:128;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:66:"smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu/GNU) biff = no";}i:2;i:5497;}i:129;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5563;}i:130;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5563;}i:131;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:62:"# appending .domain is the MUA's job. append_dot_mydomain = no";}i:2;i:5565;}i:132;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5627;}i:133;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5627;}i:134;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:38:"# Uncomment the next line to generate ";}i:2;i:5629;}i:135;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:5667;}i:136;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:"delayed mail";}i:2;i:5668;}i:137;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:5680;}i:138;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:" warnings #delay_warning_time = 4h";}i:2;i:5681;}i:139;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:5715;}i:140;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:5715;}i:141;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:486:"myhostname = localhost alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $myhostname mynetworks = 127.0.0.0/8, 10.0.0.0/24 mailbox_size_limit = 0 home_mailbox = Maildir/ virtual_mailbox_domains = /etc/postfix/vhosts virtual_mailbox_base = /home/vmail virtual_mailbox_maps = hash:/etc/postfix/vmaps virtual_minimum_uid = 1000 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 recipient_delimiter = + inet_interfaces = all Test virtual mailbox setup";}i:2;i:5717;}i:142;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6203;}i:143;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6203;}i:144;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:85:"The directory structure for a particular user is created when he gets his first mail.";}i:2;i:6205;}i:145;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6290;}i:146;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6290;}i:147;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:31:"Send a mail to info@domain1.com";}i:2;i:6292;}i:148;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6323;}i:149;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6323;}i:150;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:27:"In a terminal you can type:";}i:2;i:6325;}i:151;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6352;}i:152;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6352;}i:153;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:39:"mail info@domain1.com Check the mailbox";}i:2;i:6355;}i:154;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6394;}i:155;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6394;}i:156;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:91:"cd /home/vmail/domain1/info/new ls You should see a mail file there. If so, you've done it!";}i:2;i:6397;}i:157;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6488;}i:158;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6488;}i:159;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:239:"Set up non-Linux accounts There are several popular techniques to do this using services such as OpenLDAP or MySQL and mixing them with Courier IMAP. We won't be using those. Instead, we're going to use something simpler: plain text files.";}i:2;i:6490;}i:160;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6729;}i:161;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6729;}i:162;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:81:"We'll accomplish this with Dovecot. Dovecot is lightweight, flexible, and secure.";}i:2;i:6731;}i:163;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6812;}i:164;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6812;}i:165;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:111:"The following command installs Dovecot but removes Courier IMAP/POP3 (if you have already have them installed).";}i:2;i:6814;}i:166;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6925;}i:167;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6925;}i:168;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:32:"Install Dovecot IMAP/POP3 server";}i:2;i:6927;}i:169;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:6959;}i:170;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:6959;}i:171;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:64:"Install the packages: dovecot-common dovecot-imapd dovecot-pop3d";}i:2;i:6961;}i:172;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7025;}i:173;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7025;}i:174;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:"Configure Dovecot";}i:2;i:7027;}i:175;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7044;}i:176;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7044;}i:177;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:162:"You need to set up Dovecot to work with our setup. It is best to backup your original dovecot config file and create a new one (based on a copy of the file here).";}i:2;i:7046;}i:178;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7208;}i:179;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7208;}i:180;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:32:"Backup the original config file:";}i:2;i:7210;}i:181;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7242;}i:182;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7242;}i:183;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:127:"sudo mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig Create a new config file and copy the new config file into it:";}i:2;i:7245;}i:184;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7372;}i:185;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7372;}i:186;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:53:"sudo vi /etc/dovecot/dovecot.conf Copy into the file:";}i:2;i:7375;}i:187;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7428;}i:188;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7428;}i:189;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:"Ubuntu 12.04:";}i:2;i:7430;}i:190;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7443;}i:191;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7443;}i:192;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:163:"auth_mechanisms = plain cram-md5 auth_verbose = yes base_dir = /var/run/dovecot/ info_log_path = /var/log/dovecot.info log_path = /var/log/dovecot log_timestamp = ";}i:2;i:7446;}i:193;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:7609;}i:194;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:"%Y-%m-%d %H:%M:%S ";}i:2;i:7610;}i:195;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:7628;}i:196;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:51:" mail_location = maildir:/home/vmail/%d/%n passdb {";}i:2;i:7629;}i:197;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7680;}i:198;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:47:"args = /etc/dovecot/passwd driver = passwd-file";}i:2;i:7680;}i:199;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7680;}i:200;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:38:"} protocols = imap pop3 service auth {";}i:2;i:7733;}i:201;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7771;}i:202;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:46:"executable = /usr/lib/dovecot/auth user = root";}i:2;i:7771;}i:203;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7771;}i:204;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:"} service imap-login {";}i:2;i:7823;}i:205;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7845;}i:206;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:70:"chroot = login executable = /usr/lib/dovecot/imap-login user = dovecot";}i:2;i:7845;}i:207;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7845;}i:208;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"} service imap {";}i:2;i:7923;}i:209;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7939;}i:210;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:34:"executable = /usr/lib/dovecot/imap";}i:2;i:7939;}i:211;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7939;}i:212;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:22:"} service pop3-login {";}i:2;i:7977;}i:213;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:7999;}i:214;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:70:"chroot = login executable = /usr/lib/dovecot/pop3-login user = dovecot";}i:2;i:7999;}i:215;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:7999;}i:216;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"} service pop3 {";}i:2;i:8077;}i:217;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8093;}i:218;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:34:"executable = /usr/lib/dovecot/pop3";}i:2;i:8093;}i:219;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8093;}i:220;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:19:"} ssl = no userdb {";}i:2;i:8131;}i:221;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8150;}i:222;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:46:"args = /etc/dovecot/users driver = passwd-file";}i:2;i:8150;}i:223;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8150;}i:224;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:54:"} valid_chroot_dirs = /var/spool/vmail protocol pop3 {";}i:2;i:8202;}i:225;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8256;}i:226;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:29:"pop3_uidl_format = %08Xu%08Xv";}i:2;i:8256;}i:227;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8256;}i:228;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:"} Pre 12.04:";}i:2;i:8289;}i:229;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8301;}i:230;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8301;}i:231;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:185:"base_dir = /var/run/dovecot/ protocols = imap pop3 disable_plaintext_auth = yes shutdown_clients = yes log_path = /var/log/dovecot info_log_path = /var/log/dovecot.info log_timestamp = ";}i:2;i:8304;}i:232;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:8489;}i:233;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:18:"%Y-%m-%d %H:%M:%S ";}i:2;i:8490;}i:234;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:8508;}i:235;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:267:" ssl = no #In Ubuntu 10.04 Lucid Lynx: ssl = no login_dir = /var/run/dovecot/login login_chroot = yes login_user = dovecot login_greeting = Dovecot ready. mail_location = maildir:/home/vmail/%d/%n mmap_disable = no valid_chroot_dirs = /var/spool/vmail protocol imap {";}i:2;i:8509;}i:236;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8776;}i:237;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:86:"login_executable = /usr/lib/dovecot/imap-login mail_executable = /usr/lib/dovecot/imap";}i:2;i:8776;}i:238;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8776;}i:239;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:17:"} protocol pop3 {";}i:2;i:8868;}i:240;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:8885;}i:241;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:116:"login_executable = /usr/lib/dovecot/pop3-login mail_executable = /usr/lib/dovecot/pop3 pop3_uidl_format = %08Xu%08Xv";}i:2;i:8885;}i:242;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:8885;}i:243;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:83:"} auth_executable = /usr/lib/dovecot/dovecot-auth auth_verbose = yes auth default {";}i:2;i:9009;}i:244;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:9092;}i:245;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:142:"mechanisms = plain cram-md5 passdb passwd-file { args = /etc/dovecot/passwd } userdb passwd-file { args = /etc/dovecot/users } user = root";}i:2;i:9092;}i:246;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:9092;}i:247;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:120:"} Note: If you are using/testing with Dapper Drake (Ubuntu 6.06), please use the Dovecot config file for Dapper instead.";}i:2;i:9252;}i:248;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:9372;}i:249;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:9372;}i:250;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:48:"Several of the config lines require explanation.";}i:2;i:9375;}i:251;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:9423;}i:252;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:9423;}i:253;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:"The line ";}i:2;i:9425;}i:254;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9434;}i:255;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:41:"mail_location = maildir:/home/vmail/%d/%n";}i:2;i:9435;}i:256;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9476;}i:257;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:197:" is particularly important. In our virtual hosting set up, the way we distinguish one user from another is to have them log in with their full email address. For example, when the email account is ";}i:2;i:9477;}i:258;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9674;}i:259;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"info@domain1.com";}i:2;i:9675;}i:260;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9691;}i:261;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:93:", Dovecot does some guessing on its end about your user name. If it just sees something like ";}i:2;i:9692;}i:262;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9785;}i:263;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:"info";}i:2;i:9786;}i:264;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9790;}i:265;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:28:", it sets a variable called ";}i:2;i:9791;}i:266;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9819;}i:267;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:"%n";}i:2;i:9820;}i:268;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9822;}i:269;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3:"to ";}i:2;i:9823;}i:270;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9826;}i:271;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:"info";}i:2;i:9827;}i:272;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9831;}i:273;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:". If it sees ";}i:2;i:9832;}i:274;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9845;}i:275;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"info@domain1.com";}i:2;i:9846;}i:276;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9862;}i:277;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:30:", it will split it up and set ";}i:2;i:9863;}i:278;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9893;}i:279;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:"%d";}i:2;i:9894;}i:280;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9896;}i:281;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" to domain1.com and ";}i:2;i:9897;}i:282;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9917;}i:283;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:"%n";}i:2;i:9918;}i:284;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9920;}i:285;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:" to ";}i:2;i:9921;}i:286;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:9925;}i:287;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:4:"info";}i:2;i:9926;}i:288;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:9930;}i:289;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:125:". Using that paradigm, if we replace the variables in this line , we get something like: maildir:/home/vmail/domain1.com/info";}i:2;i:9931;}i:290;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10056;}i:291;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10056;}i:292;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:10:"The lines ";}i:2;i:10058;}i:293;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:10068;}i:294;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:26:"args = /etc/dovecot/passwd";}i:2;i:10069;}i:295;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:10095;}i:296;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" and ";}i:2;i:10096;}i:297;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:10101;}i:298;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:25:"args = /etc/dovecot/users";}i:2;i:10102;}i:299;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:10127;}i:300;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:61:" are similar to the /etc/passwd and /etc/shadow system files.";}i:2;i:10128;}i:301;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10189;}i:302;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10189;}i:303;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:45:"The format of these files is similar to this:";}i:2;i:10191;}i:304;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10236;}i:305;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10236;}i:306;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:2:"::";}i:2;i:10238;}i:307;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10240;}i:308;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10240;}i:309;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:86:"/etc/dovecot/users: info@domain1.com::5000:5000::/home/vmail/domain1.com/:/bin/false::";}i:2;i:10243;}i:310;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10329;}i:311;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10329;}i:312;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:72:"/etc/dovecot/passwd: info@domain1.com:$1$G/FqlOG5$Vj0xmc9fKY.UVr8OWr/7C1";}i:2;i:10331;}i:313;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10403;}i:314;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10403;}i:315;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:52:"The 5000:5000 corresponds to the uid and gid of the ";}i:2;i:10405;}i:316;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:10457;}i:317;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:7:"virtual";}i:2;i:10458;}i:318;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:10465;}i:319;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:146:" called vmail (which owns all the mailboxes in the system). The home directory includes everything but the word before the @ in the email address.";}i:2;i:10466;}i:320;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10612;}i:321;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10612;}i:322;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:88:"Note: It is possible to use a single file for the user/passwd with the following format:";}i:2;i:10614;}i:323;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10702;}i:324;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10702;}i:325;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:121:"/etc/dovecot/passwd: info@domain1.com:$1$G/FqlOG5$Vj0xmc9fKY.UVr8OWr/7C1:5000:5000::/home/vmail/domain1.com/:/bin/false::";}i:2;i:10705;}i:326;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10826;}i:327;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10826;}i:328;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:"Create Dovecot Users";}i:2;i:10829;}i:329;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:10849;}i:330;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:10849;}i:331;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:393:"There are no commands like useradd and passwd to add users and passwords for our mail system. A bash script provides a small and quick solution. Files: /etc/dovecot/users - Similar to /etc/passwd /etc/dovecot/passwd - Similar to /etc/shadow /etc/postfix/vmaps - Map virtual users to mail directory (for postfix). If changes are made, use postmap /etc/postfix/vmaps && service postfix reload.";}i:2;i:10851;}i:332;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11244;}i:333;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11244;}i:334;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:31:"Scripts to Add and Delete Users";}i:2;i:11246;}i:335;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11277;}i:336;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11277;}i:337;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:12:"Create file:";}i:2;i:11279;}i:338;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11291;}i:339;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11291;}i:340;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:89:"sudo vi /usr/local/sbin/adddovecotuser Add the following code segment and save the file:";}i:2;i:11294;}i:341;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11383;}i:342;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11383;}i:343;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:32:" #!/bin/sh if [ ! $# = 1 ] then";}i:2;i:11386;}i:344;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11418;}i:345;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:39:"echo "Usage: $0 username@domain" exit 1";}i:2;i:11418;}i:346;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:11418;}i:347;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" else";}i:2;i:11463;}i:348;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:11468;}i:349;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:310:"user=`echo "$1" | cut -f1 -d "@"` domain=`echo "$1" | cut -s -f2 -d "@"` if [ -x $domain ] then echo "No domain given\nUsage: $0 username@domain" exit 2 fi echo "Adding user $user@$domain to /etc/dovecot/users" echo "$user@$domain::5000:5000::/home/vmail/$domain/$user/:/bin/false::" >> /etc/dovecot/users";}i:2;i:11468;}i:350;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:735:"# Create the needed Maildir directories echo "Creating user directory /home/vmail/$domain/$user" # maildirmake.dovecot does only chown on user directory, we'll create domain directory instead if [ ! -x /home/vmail/$domain ] then mkdir /home/vmail/$domain chown 5000:5000 /home/vmail/$domain chmod 700 /home/vmail/$domain fi /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user 5000:5000 # Also make folders for Drafts, Sent, Junk and Trash /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user/.Drafts 5000:5000 /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user/.Sent 5000:5000 /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user/.Junk 5000:5000 /usr/bin/maildirmake.dovecot /home/vmail/$domain/$user/.Trash 5000:5000";}i:2;i:11798;}i:351;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:189:"# To add user to Postfix virtual map file and relode Postfix echo "Adding user to /etc/postfix/vmaps" echo $1 $domain/$user/ >> /etc/postfix/vmaps postmap /etc/postfix/vmaps postfix reload";}i:2;i:12565;}i:352;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:12565;}i:353;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:8:"fi echo ";}i:2;i:12766;}i:354;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:12774;}i:355;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:42:"\nCreate a password for the new email user";}i:2;i:12775;}i:356;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:12817;}i:357;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:129:" #SWAP THE FOLLOWING passwd LINES IF USING A UBUNTU VERSION PRIOR TO 12.04 #passwd=`dovecotpw` passwd=`doveadm pw -u $user` echo ";}i:2;i:12818;}i:358;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:12947;}i:359;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:56:"Adding password for $user@$domain to /etc/dovecot/passwd";}i:2;i:12948;}i:360;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:13004;}i:361;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:38:" if [ ! -x /etc/dovecot/passwd ] then";}i:2;i:13005;}i:362;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13043;}i:363;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:55:"touch /etc/dovecot/passwd chmod 640 /etc/dovecot/passwd";}i:2;i:13043;}i:364;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13043;}i:365;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:9:"fi echo ";}i:2;i:13104;}i:366;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:13113;}i:367;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:21:"$user@$domain:$passwd";}i:2;i:13114;}i:368;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:13135;}i:369;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:1:" ";}i:2;i:13136;}i:370;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:2:">>";}i:2;i:13137;}i:371;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:20:" /etc/dovecot/passwd";}i:2;i:13139;}i:372;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13159;}i:373;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13159;}i:374;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:32:"exit 0 Make the file executable:";}i:2;i:13161;}i:375;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13193;}i:376;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13193;}i:377;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:67:"sudo chmod +x /usr/local/sbin/adddovecotuser Add a user like this:";}i:2;i:13196;}i:378;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13263;}i:379;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13263;}i:380;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:77:"sudo adddovecotuser info@domain1.com We'll create one for deleting users too:";}i:2;i:13266;}i:381;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13343;}i:382;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13343;}i:383;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:88:"sudo vi /usr/local/sbin/deldovecotuser Add the following code segment and save the file:";}i:2;i:13346;}i:384;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13434;}i:385;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13434;}i:386;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:92:" #!/bin/bash # # deldovecotuser - for deleting virtual dovecot users # if [ ! $# = 1 ] then";}i:2;i:13437;}i:387;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13529;}i:388;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:42:"echo -e "Usage: $0 username@domain" exit 1";}i:2;i:13529;}i:389;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13529;}i:390;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:5:" else";}i:2;i:13577;}i:391;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13582;}i:392;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:165:"user=`echo "$1" | cut -f1 -d "@"` domain=`echo "$1" | cut -s -f2 -d "@"` if [ -x $domain ] then echo -e "No domain given\nUsage: $0 username@domain: " exit 2 fi";}i:2;i:13582;}i:393;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13582;}i:394;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"fi read -n 1 -p ";}i:2;i:13763;}i:395;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:13779;}i:396;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:47:"Delete user $user@$domain from dovecot? [Y/N]? ";}i:2;i:13780;}i:397;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:13827;}i:398;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:28:" echo case $REPLY in y | Y)";}i:2;i:13828;}i:399;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:13856;}i:400;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:752:"new_users=`grep -v $user@$domain /etc/dovecot/users` new_passwd=`grep -v $user@$domain /etc/dovecot/passwd` new_vmaps=`grep -v $user@$domain /etc/postfix/vmaps` echo "Deleting $user@$domain from /etc/dovecot/users" echo "$new_users" > /etc/dovecot/users echo "Deleting $user@$domain from /etc/dovecot/passwd" echo "$new_passwd" > /etc/dovecot/passwd echo "Deleting $user@$domain from /etc/postfix/vmaps" echo "$new_vmaps" > /etc/postfix/vmaps postmap /etc/postfix/vmaps postfix reload read -n1 -p "Delete all files in /home/vmail/$domain/$user? [Y/N]? " DELETE echo case $DELETE in y | Y) echo "Deleting files in /home/vmail/$domain/$user" rm -fr /home/vmail/$domain/$user ;; * ) echo "Not deleting files in /home/vmail/$domain/$user" ;; esac";}i:2;i:13856;}i:401;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:13856;}i:402;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:8:" ;; * )";}i:2;i:14654;}i:403;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14662;}i:404;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:18:"echo "Aborting..."";}i:2;i:14662;}i:405;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14662;}i:406;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:34:" ;; esac Make the file executable:";}i:2;i:14684;}i:407;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14718;}i:408;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14718;}i:409;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:70:"sudo chmod +x /usr/local/sbin/deldovecotuser Delete a user like this:";}i:2;i:14721;}i:410;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14791;}i:411;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14791;}i:412;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:72:"sudo deldovecotuser info@domain1.com To start Devecot for the first time";}i:2;i:14794;}i:413;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14866;}i:414;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14866;}i:415;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:63:"sudo /etc/init.d/dovecot start C#/Mono Application to Add Users";}i:2;i:14869;}i:416;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:14932;}i:417;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:14932;}i:418;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:297:"An alternative to the scripts below for adding users and creating passwords, there is an Open Source tool written in C# and compiles in Mono to do this same task. It offers a few more error checks and prompts. It incorporates the scripts into one tool for Postfix and Dovecot. You can find it here";}i:2;i:14934;}i:419;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:15231;}i:420;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:15231;}i:421;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:195:"Postfix SASL If you would like your mail users to authenticate to Postfix too, we need to configure Postfix for SASL. In that way, the mail server can relay email from users not in local network.";}i:2;i:15233;}i:422;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:15428;}i:423;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:15428;}i:424;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:47:"Make Dovecot listen for authentication requests";}i:2;i:15430;}i:425;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:15477;}i:426;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:15477;}i:427;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:54:"In /etc/dovecot/dovecot.conf edit the auth section to:";}i:2;i:15479;}i:428;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:15533;}i:429;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:15533;}i:430;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:14:"auth default {";}i:2;i:15535;}i:431;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:15549;}i:432;a:3:{i:0;s:12:"preformatted";i:1;a:1:{i:0;s:446:"mechanisms = plain cram-md5 passdb passwd-file { args = /etc/dovecot/passwd } userdb passwd-file { args = /etc/dovecot/users } user = root socket listen { client { # The client socket is generally safe to export to everyone. Typical use # is to export it to your SMTP server so it can do SMTP AUTH lookups # using it. path = /var/spool/postfix/private/auth-client mode = 0660 user = postfix group = postfix } }";}i:2;i:15549;}i:433;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:15549;}i:434;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:140:"} Note: Code above needs an update for versions 12.04 and after. Dovecot packed with those systems does'nt work with these settings anymore.";}i:2;i:16035;}i:435;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:16175;}i:436;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:16175;}i:437;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:16:"Restart dovecot.";}i:2;i:16178;}i:438;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:16194;}i:439;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:16194;}i:440;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:55:"sudo service dovecot restart Configure Postfix for SASL";}i:2;i:16196;}i:441;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:16251;}i:442;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:16251;}i:443;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:23:"Configure Postfix SASL.";}i:2;i:16253;}i:444;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:16276;}i:445;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:16276;}i:446;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:353:"sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_sasl_security_options = noplaintext,noanonymous' sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' sudo postconf -e 'smtpd_sasl_type = dovecot' sudo postconf -e 'smtpd_sasl_path = private/auth-client' sudo echo ";}i:2;i:16278;}i:447;a:3:{i:0;s:18:"doublequoteopening";i:1;a:0:{}i:2;i:16631;}i:448;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:19:"mech_list: cram-md5";}i:2;i:16632;}i:449;a:3:{i:0;s:18:"doublequoteclosing";i:1;a:0:{}i:2;i:16651;}i:450;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:48:" > /etc/postfix/sasl/smtpd.conf Restart Postfix.";}i:2;i:16652;}i:451;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:16700;}i:452;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:16700;}i:453;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:53:"sudo service postfix restart Test the Setup With mutt";}i:2;i:16702;}i:454;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:16755;}i:455;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:16755;}i:456;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:19:"Type in a terminal:";}i:2;i:16757;}i:457;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:16776;}i:458;a:3:{i:0;s:6:"p_open";i:1;a:0:{}i:2;i:16776;}i:459;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:13:"mutt -f pop:";}i:2;i:16779;}i:460;a:3:{i:0;s:13:"emphasis_open";i:1;a:0:{}i:2;i:16792;}i:461;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:37:"mail.domain1.com or: mutt -f imap:";}i:2;i:16794;}i:462;a:3:{i:0;s:14:"emphasis_close";i:1;a:0:{}i:2;i:16831;}i:463;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:154:"mail.domain1.com Input your user name and password as requested. When logged in, shortcuts are displayed in top of window. Press q to quit. Tip1: If your ";}i:2;i:16833;}i:464;a:3:{i:0;s:7:"acronym";i:1;a:1:{i:0;s:3:"DNS";}i:2;i:16987;}i:465;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:50:" lookup doesn't work yet, you can use mutt -f pop:";}i:2;i:16990;}i:466;a:3:{i:0;s:13:"emphasis_open";i:1;a:0:{}i:2;i:17040;}i:467;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:510:"localhost when on server. Tip2: You can use auth_default_realm = domain1.com in dovecot.conf and omit @domain1.com in your user name when logging in. With telnet Telnet is more verbose. Type in a terminal: telnet localhost 110 Note: This only works when traffic is local, since we have set disable_plaintext_auth = yes. Type the following code segment in the prompt provided by the Dovecot POP3 server user info@domain1.com pass password quit Final output should be something like this Trying 127.0.0.1";}i:2;i:17042;}i:468;a:3:{i:0;s:6:"entity";i:1;a:1:{i:0;s:3:"...";}i:2;i:17552;}i:469;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:3223:" Connected to mail.domain1.com. Escape character is '^]'. +OK dovecot ready. user info@domain1.com +OK pass password +OK Logged in. quit +OK Logging out. ClamSMTP SMTP Virus Filter ClamSMTP is an SMTP filter that allows you to check for viruses using the ClamAV anti-virus software. It accepts SMTP connections and forwards the SMTP commands and responses to another SMTP server. The 'DATA' email body is intercepted and scanned before forwarding. ClamSMTP aims to be lightweight, reliable, and simple rather than have a myriad of options. It's written in C without major dependencies. ClamSMTP can also be used as a transparent proxy to filter an entire network's SMTP traffic at the router. Installing ClamAV We need ClamAV daemon to work with ClamSMTP. Let's install ClamAV first, with the following packages: clamav-daemon clamav Installing ClamSMTP You need to install the clamsmtp package. Set Postfix to use ClamSMTP Postfix supports filtering mail through a filter that acts like an SMTP server. Put the following lines in your Postfix main.cf file: Open the file: sudo vi /etc/postfix/main.cf If you have doubt where to add the codes look at my example main.cf file Add the codes: content_filter = scan:127.0.0.1:10026 receive_override_options = no_address_mappings The content_filter tells Postfix to send all mail through the service called 'scan' on port 10026. We'll set up clamsmtpd to listen on this port later. Next we add the following to the Postfix master.cf file: Open the file: sudo vi /etc/postfix/master.cf If you have doubt where to add the codes look at my example master.cf file Add the codes: # AV scan filter (used by content_filter) scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes # For injecting mail back into postfix from the filter 127.0.0.1:10025 inet n - n - 16 smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8 Make sure there's no spaces around the equal signs or commas in the text you added. Best way is to copy and my codes here. The first 2 lines create the scan service. The rest set up a service for accepting mail back into postfix. All the options prevent a mail loop as well as relax address checking and the like, since that's already been done. Make sure to run it as the same user as you run clamd or they'll have problems accessing each other's temporary files. You can use the the following accomplish that. sudo adduser clamsmtp clamav Restart Postfix, ClamSMTP, and ClamAV Daemon to make your changes effect: sudo /etc/init.d/postfix restart sudo /etc/init.d/clamsmtp restart sudo /etc/init.d/clamav-daemon restart Test ClamSMTP for outgoing mail We need to test the our outgoing mail for viruses. Best way is to download eicar test virus and attach to a mail and send. Let's do it. Download eicar to you home directory: wget ";}i:2;i:17555;}i:470;a:3:{i:0;s:12:"externallink";i:1;a:2:{i:0;s:39:"http://eicar.org/download/eicar_com.zip";i:1;N;}i:2;i:20778;}i:471;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:345:" Send this file as an attachment to info@domain1.com Then check your mail.log file: tail /var/log/mail.log You should see something like in your log file. Mar 8 17:12:02 localhost clamsmtpd: 100004: from=info@domain1.com, to=info@domain1.com, status=VIRUS:Eicar-Test-Signature Mar 8 17:12:02 localhost postfix/smtp[15634]: 4A6C852110: to=";}i:2;i:20817;}i:472;a:3:{i:0;s:9:"emaillink";i:1;a:2:{i:0;s:16:"info@domain1.com";i:1;N;}i:2;i:21162;}i:473;a:3:{i:0;s:5:"cdata";i:1;a:1:{i:0;s:376:", relay=127.0.0.1[127.0.0.1], delay=0, status=sent (250 Virus Detected; Discarded Email) Test ClamSMTP for incoming Mail from the Internet If you have a production mail server you can check your mail server for viruses provided by webmail.us. They are sending you harmless test mails with the EICAR virus test signature. Also you can use GFI Security Labs for further testing.";}i:2;i:21180;}i:474;a:3:{i:0;s:7:"p_close";i:1;a:0:{}i:2;i:21180;}i:475;a:3:{i:0;s:13:"section_close";i:1;a:0:{}i:2;i:21180;}i:476;a:3:{i:0;s:12:"document_end";i:1;a:0:{}i:2;i:21180;}}