<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>imapsync &#8211; Julsens Blog</title>
	<atom:link href="https://julsen.de/tag/imapsync/feed/" rel="self" type="application/rss+xml" />
	<link>https://julsen.de</link>
	<description>Meine Hobbies und alles was mich so interessiert</description>
	<lastBuildDate>Tue, 30 Apr 2024 16:30:24 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>E-Mails auf neuen Server umziehen / migrieren</title>
		<link>https://julsen.de/hobby/server-homeserver/e-mails-auf-neuen-server-umziehen-migrieren/</link>
					<comments>https://julsen.de/hobby/server-homeserver/e-mails-auf-neuen-server-umziehen-migrieren/#respond</comments>
		
		<dc:creator><![CDATA[Julsen]]></dc:creator>
		<pubDate>Tue, 30 Apr 2024 16:30:24 +0000</pubDate>
				<category><![CDATA[Server / HomeServer]]></category>
		<category><![CDATA[emails]]></category>
		<category><![CDATA[emails kopieren]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[imapsync]]></category>
		<category><![CDATA[migrieren]]></category>
		<guid isPermaLink="false">https://julsen.de/?p=454</guid>

					<description><![CDATA[Disclaimerich habe den Beitrag nach besten Wissen und Gewissen verfasst und übernehme keine Verantwortung für evtl. Schäden oder Verluste von E-Mails etc. Die Verwendung der]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-pullquote"><blockquote><p><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">Disclaimer<br>ich habe den Beitrag nach besten Wissen und Gewissen verfasst und übernehme keine Verantwortung für evtl. Schäden oder Verluste von E-Mails etc. Die Verwendung der hier bereitgestellten Informationen beruht auf eigene Gefahr!</mark></p></blockquote></figure>



<p class="wp-block-paragraph">Muss oder möchte man seine E-Mail Postfächer von einem auf einen anderen Server umziehen und die alten Mails übernehmen, so kann dies einfach per <a href="https://github.com/imapsync/imapsync" target="_blank" rel="noreferrer noopener nofollow">imapsync</a> erledigt werden. </p>



<p class="wp-block-paragraph">Ich persönlich habe irgendwann aufgegeben, einen eigenen Mailserver zu betreiben und habe mir hierfür den Service gemietet, damit ich muss um nichts kümmern muss. Jetzt war ich nur leider dazu gezwungen, meine Postfächer von einem auf einen anderen zu migrieren. Prinzipiell gesehen lässt sich das auch per Mail Client erledigen, dauert aber verdammt lange und ich habe auch nicht jedes verwendete Postfach selbst in Verwendung. Hier bietet es sich auch direkt an, imapsync auf einem Server im Rechenzetrum oder dem Home Server auszulagern. Eine Installation lokal auf dem eigenen PC/Notebook ist aber auch kein Problem. Dafür habe ich mir ein Dockerfile und docker-compose.yml file erstellt. Beides kann  <a href="https://github.com/julianzimmermann/docker-imapsync" target="_blank" rel="noreferrer noopener nofollow">hier</a> abgerufen werden.</p>



<p class="wp-block-paragraph">Der Weg über imapsync in Docker setzt Docker und docker compose voraus. Beides gibts für Win, Mac sowie auch Linux. Auf eine Installation für Docker gehe ich hier nicht weiter ein, da es hierzu schon zahlreiche Anleitungen gibt und auch von Docker (<a href="https://docs.docker.com/get-docker/" target="_blank" rel="noreferrer noopener nofollow">Docker installieren</a>) selbst.</p>



<h3 class="wp-block-heading">imapsync installieren / einrichten</h3>



<p class="wp-block-paragraph">Wenn Docker installiert und gestartet ist, werden die beiden Dateien von <a href="https://github.com/julianzimmermann/docker-imapsync" target="_blank" rel="noreferrer noopener nofollow">hier</a> benötigt. Einfach irgendwo zusammen in einem Ordner ablegen und den Pfad schon mal im CMD / Terminal öffnen.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="975" height="513" src="https://julsen.de/wp-content/uploads/2024/04/imapsync-pfad.png" alt="" class="wp-image-455" srcset="https://julsen.de/wp-content/uploads/2024/04/imapsync-pfad.png 975w, https://julsen.de/wp-content/uploads/2024/04/imapsync-pfad-300x158.png 300w, https://julsen.de/wp-content/uploads/2024/04/imapsync-pfad-768x404.png 768w" sizes="(max-width: 975px) 100vw, 975px" /></figure>



<p class="wp-block-paragraph">Mit dem Befehl </p>



<div class="wp-block-codesue-terminal-block" title="bash" style="--wp--default--terminal--block--color--background:#252a33;--wp--default--terminal--block--color--text:#eee;--wp--default--terminal--block--color--accent:#a2a2a2">
<p class="wp-block-codesue-terminal-command-block display-prompt" prompt="$">docker-compose up -d &#8211;build </p>
</div>



<p class="wp-block-paragraph">wird ein Image des benötigten Debian Grundsystems geladen, die benötigten Pakete für imapsync, zsh etc. installiert.</p>



<p class="wp-block-paragraph">Nachdem build Prozess sollte der Docker Container im Hintergrund gestartet sein. Dies kann mit folgendem Befehl geprüft werden.</p>



<div class="wp-block-codesue-terminal-block" title="bash" style="--wp--default--terminal--block--color--background:#252a33;--wp--default--terminal--block--color--text:#eee;--wp--default--terminal--block--color--accent:#a2a2a2">
<p class="wp-block-codesue-terminal-command-block display-prompt" prompt="$">docker ps -a</p>



<p class="wp-block-codesue-terminal-output-block">CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<br>cbeb72a63848 docker-imapsync_imapsync &#8222;tail -f /dev/null&#8220; 4 days ago Up 2 seconds imapsync</p>
</div>



<p class="wp-block-paragraph">Der Status wichtig, hier sollte irgendwas von &#8218;<code>Up X seconds</code>&#8218; oder &#8218;<code>Up x minutes</code>&#8218; etc. stehen. Wenn hier &#8218;<code>Exited (x) x seconds ago</code>&#8218; steht, ist ein Fehler passiert und der Container konnte nicht gestartet werden. Hier hilft ein &#8218;<code>docker logs imapsync</code>&#8218; Befehl um die Logs des Containers angezeigt zu bekommen.</p>



<p class="wp-block-paragraph">Wenn der Container gestartet ist, kann sich per Terminal verbunden werden bzw. wir können auf den Docker Container springen.</p>



<div class="wp-block-codesue-terminal-block" title="bash" style="--wp--default--terminal--block--color--background:#252a33;--wp--default--terminal--block--color--text:#eee;--wp--default--terminal--block--color--accent:#a2a2a2">
<p class="wp-block-codesue-terminal-command-block display-prompt" prompt="$">docker exec -it imapsync zsh</p>
</div>



<p class="wp-block-paragraph">Anstelle von zsh kann auch bash oder sh als shell verwendet werden. Ich persönlich präferiere hier die Z shell.</p>



<p class="wp-block-paragraph">Nun kann getestet werden, ob imapsync richtig installiert wurde.</p>



<div class="wp-block-codesue-terminal-block" title="bash" style="--wp--default--terminal--block--color--background:#252a33;--wp--default--terminal--block--color--text:#eee;--wp--default--terminal--block--color--accent:#a2a2a2">
<p class="wp-block-codesue-terminal-command-block display-prompt" prompt="$">./imapsync &#8211;testslive</p>
</div>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="474" src="https://julsen.de/wp-content/uploads/2024/04/imapsync-test-1024x474.png" alt="" class="wp-image-457" srcset="https://julsen.de/wp-content/uploads/2024/04/imapsync-test-1024x474.png 1024w, https://julsen.de/wp-content/uploads/2024/04/imapsync-test-300x139.png 300w, https://julsen.de/wp-content/uploads/2024/04/imapsync-test-768x356.png 768w, https://julsen.de/wp-content/uploads/2024/04/imapsync-test.png 1028w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Postfächer vorbereiten</h3>



<p class="wp-block-paragraph">Ich habe (händisch) auf dem neuen Mailserver jedes Postfach welches ich synchronieren werde, neu angelegt. Hier habe ich überall das selbe einfach Passwort wie z.B. &#8218;target123&#8242; festgelegt. Auf dem alten Mailserver habe ich von jedem Postfach das Passwort auf z.B. &#8217;source123&#8216; geändert, um den sync Vorgang etwas einfacher zu gestalten.</p>



<p class="wp-block-paragraph">Auch ist es sinnvoll, gelösche Elemente so wie SPAMs schon vom alten Server komplett zu löschen, da es sonst sehr lange dauern kann die alle zu übernehmen.</p>



<p class="wp-block-paragraph">Nachdem diese Vorbereitungen abgeschlossen sind, kann gesynct werden.</p>



<h3 class="wp-block-heading">Sync Vorgang starten</h3>



<div class="wp-block-codesue-terminal-block" title="bash" style="--wp--default--terminal--block--color--background:#252a33;--wp--default--terminal--block--color--text:#eee;--wp--default--terminal--block--color--accent:#a2a2a2">
<p class="wp-block-codesue-terminal-command-block display-prompt" prompt="$">./imapsync &#8211;addheader &#8211;automap &#8211;delete1 &#8211;host1 MAILSERVER1 &#8211;host2 MAILSERVER2 &#8211;password1 PASSWORTSOURCE &#8211;password2 PASSWORTTARGET &#8211;user1 LOGINSOURCE &#8211;user2 LOGINTARGET</p>
</div>



<p class="wp-block-paragraph">Ich habe alle Mails mit dem oben angegebenen Befehl synchronisieren lassen. Eine genaue Übersicht aller Befehle kann in der imapsync Dokumentation oder man page nachgeschaut werden.</p>



<p class="wp-block-paragraph">Folgende Platzhalter müssen angepasst werden:</p>



<pre class="wp-block-code"><code>MAILSERVER1 -&gt; IP oder Adresse vom alten Mailserver
MAILSERVER2 -&gt; IP oder Adresse vom neuen Mailserver
PASSWORTSOURCE -&gt; Login PW z.B. source123
PASSWORTTARGET -&gt; Login PW z.B. target123
LOGINSOURCE -&gt; Benutzername oder E-Mail für Login
LOGINTARGET -&gt; Benutzername oder E-Mail für Login</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Es ist auch noch wichtig zu erwähnen, dass der Parameter &#8211;delete1, alle erfolgreich synchronisierte Nachrichten von host1/MAILSERVER1 unwiderruflich löscht! Also aufpassen!</strong></p>
</blockquote>



<p class="wp-block-paragraph">Der Befehl kann kann per STRG + C abgebrochen werden und später einfach wieder neugestartet werden. Auch kann der Befehl nach Erfolg alle paar Stunden wieder ausgeführt werden, um die restlichen noch eintreffenden Mails zu syncen. Ich hab den Sync 24h nach Erfolg das letze Mal noch gestartet (DNS Cache), um wirklich noch die letzten Mails zu syncen.</p>



<p class="wp-block-paragraph">Der Sync dauert unterschiedlich lange, so wurden bei mir teilweise 60 Mails die Sekunde kopiert, aber auch bei sehr großen Postfächern mit 12 GB mit 60 Mails/s gestartet und dann zwischendurch runter auf 0,5 Mails/s gefallen. Ein mehrfacher Neustart brachte auch keinen Erfolg. So haben teilweise ein paar Postfächer mehrere Tage gebraucht um kopiert zu werden.</p>



<h3 class="wp-block-heading">DNS Einstellungen aktualisieren (nur, wenn E-Mail Adressen gleich bleiben)</h3>



<p class="wp-block-paragraph">Wenn mindestens die Domain gleich bleibt, z.B. test@julsen.de sync zu test@julsen.de (julsen.de bleibt gleich), muss noch der DNS Eintrag angepasst werden. Dies ist meist in der Verwaltungsoberfläche bei dem Anbieter, wo auch die Domain gehostet wird. Es kann bis zu 24 Stunden dauern, bis überall die neuen Einträge angekommen sind und nicht mehr die alten aus dem DNS Cache gezogen werden. </p>



<p class="wp-block-paragraph">Hier kann sicherlich auch mit der MX Priorisierung gearbeitet werden und nach Sync einfach der alte Mailserver dann gekillt werden, geht aber nur wenn man auch Zugriff auf den alten Server hat.</p>



<h3 class="wp-block-heading">Passwörter setzen</h3>



<p class="wp-block-paragraph">Wichtig ist am Ende noch alle Passwörter wieder auf sichere Passwörter zu ändern!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://julsen.de/hobby/server-homeserver/e-mails-auf-neuen-server-umziehen-migrieren/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
