<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Настройка Postfix]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=23180</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=23180&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Настройка Postfix».]]></description>
		<lastBuildDate>Tue, 24 Jul 2012 04:40:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Настройка Postfix]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=289420#p289420</link>
			<description><![CDATA[<p><strong>ddjwin</strong> <br />А вообще по теме, учись гуглить.<br />Все уже есть!</p>]]></description>
			<author><![CDATA[null@example.com (AlfaStriker)]]></author>
			<pubDate>Tue, 24 Jul 2012 04:40:01 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=289420#p289420</guid>
		</item>
		<item>
			<title><![CDATA[Re: Настройка Postfix]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=289413#p289413</link>
			<description><![CDATA[<p><strong>ddjwin</strong><br />Плохо задал вопрос, хотя из него можно понять что ты хочешь. В следующий раз объясняй более четко.<br />По теме, если хочешь сделать плавный переход:<br />1. Ставишь второй сервер, настраиваешь на нем Postfix<br />2. На DNS сервере твоей зоны, добавляешь MX запись с меньшим приоритетом.<br />3. После создаешь аналогичные учетки в Postfix и сразу же на клиентских машинах меняешь настройки почтового клиента</p><p>Есть еще другой способ с использованием IMAP.<br /><strong>1. В Kerio Connect выставляешь тип ящика юзерам - IMAP</strong><br /><strong>2. Выгружаешь учетные записи и пароли в *.csv файл (точка запятой формат)</strong><br /><strong>3. У себя на компьтере в Excel отркфываешь этот файл и редактируешь поправляя столбцы, чтобы он в конце стал похож на таблицу mailbox которую сделал Postfixadmin.</strong><br />Таблица mailbox:<br /></p><div class="codebox"><pre><code>mysql&gt; SHOW COLUMNS FROM mailbox;
+------------+--------------+------+-----+---------------------+-------+
| Field      | Type         | Null | Key | Default             | Extra |
+------------+--------------+------+-----+---------------------+-------+
| username   | varchar(255) | NO   | PRI | NULL                |       |
| password   | varchar(255) | NO   |     | NULL                |       |
| name       | varchar(255) | NO   |     | NULL                |       |
| maildir    | varchar(255) | NO   |     | NULL                |       |
| quota      | bigint(20)   | NO   |     | 0                   |       |
| local_part | varchar(255) | NO   |     | NULL                |       |
| domain     | varchar(255) | NO   | MUL | NULL                |       |
| created    | datetime     | NO   |     | 0000-00-00 00:00:00 |       |
| modified   | datetime     | NO   |     | 0000-00-00 00:00:00 |       |
| active     | tinyint(1)   | NO   |     | 1                   |       |
+------------+--------------+------+-----+---------------------+-------+</code></pre></div><br /><p>Внутри таблицы вот такие данные(это пример):</p><div class="codebox"><pre><code>mysql&gt; SELECT * FROM mailbox;
+-------------------+------------------------------------+------+--------------------+-------+------------+-------------+---------------------+---------------------+--------+
| username          | password                           | name | maildir            | quota | local_part | domain      | created             | modified            | active |
+-------------------+------------------------------------+------+--------------------+-------+------------+-------------+---------------------+---------------------+--------+
| linux@point.local | $1$cf007044$zqZ5QbTtKPC.As0.SCu9R/ |      | linux@point.local/ |     0 | linux      | point.local | 2012-04-08 23:15:11 | 2012-04-08 23:15:11 |      1 |
| user@point.local  | $1$b2e5d656$ECe.sfdyrNAWzffR6vc6A0 |      | user@point.local/  |     0 | user       | point.local | 2012-04-08 23:15:18 | 2012-04-08 23:15:18 |      1 |
| aaa@point.local   | $1$df9e89d5$BMRK7M8OOMRrWzn6p9H4s/ |      | aaa@point.local/   |     0 | aaa        | point.local | 2012-04-08 23:18:53 | 2012-04-08 23:18:53 |      1 |
| a@point.local     | $1$a913430c$AgLpxOzmcp2CX10J1rIEz1 |      | a@point.local/     |     0 | a          | point.local | 2012-04-08 23:21:57 | 2012-04-08 23:21:57 |      1 |
+-------------------+------------------------------------+------+--------------------+-------+------------+-------------+---------------------+---------------------+--------+</code></pre></div><p><strong>4. Далее импортируешь подогнанную таблицу в MySQL, база Postfixadmin&#039;a</strong><br />Перенос IMAP учетных записей из CSV файлаe</p><p>Для миграции пользователей и почты из IMAP вы должны использовать скрипт. Вы можете использовать его для миграции из Exchange сервера или любово другова который поддерживает IMAP учетные записи. Вы должны создать CSV файл со следующим форматом:<br /></p><div class="codebox"><pre><code>&quot;Group in GO 0&quot;,&quot;Email address 1&quot;,&quot;First name 2&quot;,&quot;Middle name 3&quot;,&quot;Last name 4&quot;,&quot;Password 5&quot;,&quot;GroupOffice User name 6&quot;</code></pre></div><p>Далее надо создать следующий скрипт, в этом скрипте поменять некоторые переменные:<br /></p><div class="codebox"><pre><code>&lt;?php

/**
 * Copyright Intermesh
 *
 * This file is part of Group-Office. You should have received a copy of the
 * Group-Office license along with Group-Office. See the file /LICENSE.TXT
 *
 * If you have questions write an e-mail to info@intermesh.nl
 *
 * @version $Id: imapsync.php 4569 2010-04-13 08:27:54Z mschering $
 * @copyright Copyright Intermesh
 * @author Merijn Schering &lt;mschering@intermesh.nl&gt;
 *
 */

/*
 * This script can be used to create users in Group-Office with a CSV file
 * and migrate the mail through IMAP.
 *
 * This only works if the postfixadmin module runs on the same installation
 * where the new Group-Office users will be created.
 *
 * The script was written for version 3.5.9
 */

//the domain for the mail
$maildomain=&#039;example.com&#039;;

//the new mail host
$local_host = &#039;localhost&#039;;

//the old mail host
$remote_host = &#039;mail.example.com&#039;;

//the path to the imapsync program
$imapsync = &#039;/usr/bin/imapsync&#039;;

//CSV file in format:
//&quot;Group in GO 0&quot;,&quot;Email address 1&quot;,&quot;First name 2&quot;,&quot;Middle name 3&quot;,&quot;Last name 4&quot;,&quot;Password 5&quot;,&quot;GroupOffice User name 6&quot;
$csv_file=&#039;/home/mschering/Downloads/users.csv&#039;


//end of variables section.



//otherwise log module will log all items as added.
define(&#039;NOLOG&#039;, true);

if (isset($argv[1])) {
    define(&#039;CONFIG_FILE&#039;, $argv[1]);
}

chdir(dirname(__FILE__));

require_once(&quot;../../Group-Office.php&quot;);
require_once($GO_MODULES-&gt;modules[&#039;postfixadmin&#039;][&#039;class_path&#039;].&#039;postfixadmin.class.inc.php&#039;);
$postfixadmin = new postfixadmin();

require_once($GO_MODULES-&gt;modules[&#039;email&#039;][&#039;class_path&#039;].&#039;email.class.inc.php&#039;);
$e = new email();

//make sure e-mail domain exists in database
$domain = $postfixadmin-&gt;get_domain_by_domain($maildomain);
if(!$domain)
{
    $domain[&#039;transport&#039;]=&#039;virtual&#039;;
    $domain[&#039;active&#039;]=&#039;1&#039;;
    $domain[&#039;domain&#039;]=$maildomain;
    $domain[&#039;user_id&#039;]=1;
    $domain[&#039;acl_id&#039;]=$GO_SECURITY-&gt;get_new_acl(&#039;domain&#039;);

    $domain_id=$postfixadmin-&gt;add_domain($domain);
}else
{
    $domain_id=$domain[&#039;id&#039;];
}

$fp = fopen($csv_file, &quot;r&quot;);
if (!$fp) {
    die(&#039;Could not read CSV file&#039;);
}

//headings, skip one row
$record = fgetcsv($fp, 4096, &#039;,&#039;, &#039;&quot;&#039;);

while ($record = fgetcsv($fp, 4096, &#039;,&#039;, &#039;&quot;&#039;)) {

    $remote_user = $record[1];
    $remote_pass = $record[5];
    $groupoffice_user = $record[6];
    $email = $record[1];

    //Check if the user exists in Group-Office and if it doesn&#039;t create it.
    $user = $GO_USERS-&gt;get_user_by_username($groupoffice_user);
    if(!$user){
        $user[&#039;first_name&#039;]=$record[2];
        $user[&#039;middle_name&#039;]=$record[3];
        $user[&#039;last_name&#039;]=$record[4];
        $user[&#039;email&#039;]=$email;
        $user[&#039;username&#039;]=$groupoffice_user;
        $user[&#039;password&#039;]=$remote_pass;
        $user[&#039;enabled&#039;]=&#039;1&#039;;

        $group = $GO_GROUPS-&gt;get_group_by_name($record[0]);
        if(!$group){
            $group_id=$GO_GROUPS-&gt;add_group(1, $record[0]);
        }else
        {
            $group_id=$group[&#039;id&#039;];
        }

        $user_id = $GO_USERS-&gt;add_user($user, array($group_id),array($GO_CONFIG-&gt;group_everyone,$group_id));
    }else
    {
        $user_id = $user[&#039;id&#039;];
    }
    
    $pa_user=$groupoffice_user.&#039;@&#039;.$maildomain;

    //Create a mailbox in postfixadmin
    $mailbox = $postfixadmin-&gt;get_mailbox_by_username($pa_user);
    if(!$mailbox){
        $mailbox[&#039;domain_id&#039;]=$domain_id;
        $mailbox[&#039;username&#039;]=$pa_user;
        $mailbox[&#039;password&#039;]=md5($remote_pass);
        $mailbox[&#039;maildir&#039;]=$maildomain.&#039;/&#039;.$groupoffice_user.&#039;/&#039;;
        $mailbox[&#039;active&#039;]=&#039;1&#039;;
        $mailbox_id= $postfixadmin-&gt;add_mailbox($mailbox);

        $alias[&#039;domain_id&#039;]=$mailbox[&#039;domain_id&#039;];
        $alias[&#039;address&#039;]=$mailbox[&#039;username&#039;];
        $alias[&#039;active&#039;]=$mailbox[&#039;active&#039;];
        $alias[&#039;goto&#039;]=$mailbox[&#039;username&#039;];

        $postfixadmin-&gt;add_alias($alias);

        if($email!=$pa_user){
            $alias[&#039;goto&#039;]=$email;

            $postfixadmin-&gt;add_alias($alias);
        }
    }

    //create an e-mail account for the user
    $account = $e-&gt;get_account_by_username($pa_user, $user_id);
    if(!$account){
        $account[&#039;user_id&#039;]=$user_id;
        $account[&#039;mbroot&#039;] = &#039;&#039;;
        $account[&#039;use_ssl&#039;] = 0;
        $account[&#039;type&#039;]=&#039;imap&#039;;
        $account[&#039;host&#039;]=&#039;localhost&#039;;
        $account[&#039;port&#039;]=143;
        $account[&#039;username&#039;]=$pa_user;
        $account[&#039;password&#039;]=$remote_pass;

        $account[&#039;smtp_host&#039;]=&#039;localhost&#039;;
        $account[&#039;smtp_port&#039;]=25;
        $account[&#039;smtp_encryption&#039;]=&#039;&#039;;
        $account[&#039;smtp_username&#039;]=&#039;&#039;;
        $account[&#039;smtp_password&#039;]=&#039;&#039;;
        $account[&#039;name&#039;]=String::format_name($record[4],$record[2],$record[3],&#039;first_name&#039;);
        $account[&#039;email&#039;]=$email;
        $account[&#039;signature&#039;]=&#039;&#039;;

        $e-&gt;add_account($account);
}


    echo &quot;Syncing &quot; . $record[0] . &quot;\n\n&quot;;

    //--skipsize --useheader Message-Id

    $cmd = $imapsync . &#039; --syncinternaldates --authmech1 LOGIN --authmech2 LOGIN &#039; .
                    &#039;--host1=&quot;&#039; . $remote_host . &#039;&quot; --user1=&quot;&#039; . $pa_user . &#039;&quot; --password1=&quot;&#039; . $remote_pass . &#039;&quot; &#039; .
                    &#039;--user2=&quot;&#039; . $remote_user . &#039;&quot; --host2=&quot;&#039; . $local_host . &#039;&quot; --password2=&quot;&#039; . $remote_pass . &#039;&quot;&#039;;

    echo $cmd . &quot;\n\n&quot;;

    system($cmd);
}</code></pre></div><p><strong>6. Перезапускаешь Dovecot:</strong><br /></p><div class="codebox"><pre><code># service dovecot restart</code></pre></div><p>Dovecot во время перезапуска создает папки учетных записей пользователей</p><p><strong>7. Устанавливаешь программу imapsync</strong><br /># rpm -Uvh <a href="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm">http://pkgs.repoforge.org/rpmforge-rele … f.i686.rpm</a><br /># yum install imapsync -y</p><p><strong>8. С помощью imapsync перетаскиваешь почту из одного ящика в другой</strong><br />Создаешь файл accounts.csv<br /></p><div class="codebox"><pre><code>user001_1;password001_1;user001_2;password001_2
       user002_1;password002_1;user002_2;password002_2
       user003_1;password003_1;user003_2;password003_2
       user004_1;password004_1;user004_2;password004_2
       user005_1;password005_1;user005_2;password005_2 ...</code></pre></div><p>Полученную таблицу в пункте 3 редактируешь до состояния пригодного для импорта.<br />Создаешь скрипт:<br /># vi import.sh<br /></p><div class="codebox"><pre><code>while ! imapsync account.csv; do
                     echo imapsync not complete
done</code></pre></div><p> <br /><strong>9. Проверяешь работу почтового сервера</strong></p>]]></description>
			<author><![CDATA[null@example.com (AlfaStriker)]]></author>
			<pubDate>Tue, 24 Jul 2012 02:57:47 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=289413#p289413</guid>
		</item>
		<item>
			<title><![CDATA[Re: Настройка Postfix]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=289348#p289348</link>
			<description><![CDATA[<p>как же так же?</p>]]></description>
			<author><![CDATA[null@example.com (Hrafn)]]></author>
			<pubDate>Mon, 23 Jul 2012 13:19:52 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=289348#p289348</guid>
		</item>
		<item>
			<title><![CDATA[Настройка Postfix]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=286067#p286067</link>
			<description><![CDATA[<p>Имеется почтовый домен в интернете на нем создана одна учетная запись. В Kerio Conetct созданы почтовые ящики которые принимают внешнюю почту. Как перенести с kerio на Postfix? Что бы Postfix работал так же.</p>]]></description>
			<author><![CDATA[null@example.com (ddjwin)]]></author>
			<pubDate>Wed, 04 Jul 2012 12:28:51 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=286067#p286067</guid>
		</item>
	</channel>
</rss>
