IMAP ile E-posta Taşıma Neden Düşündüğünüzden Daha Zor?
Bir web sitesini iki host arasında taşıdığınızda, genellikle dosyaları ve veritabanını aktarmak yeterlidir. Ancak e-posta taşıma farklı bir hikayedir. E-posta kutularınız önceki hostta IMAP protokolü ile çalışıyorsa, tüm mesajlar, klasörler, etiketler ve hatta okunma/okunmama durumları sunucuda saklanır. Bu verileri doğru şekilde aktarmazsanız, kullanıcılarınız eski e-postalarını sonsuza kadar kaybedebilir.
Birçok kişi DNS kayıtlarını değiştirip yeni sunucuda kutuları yeniden oluşturarak her şeyin otomatik olarak aktarılacağını düşünür. Bu düşünce yanlıştır. DNS yalnızca yeni e-postaların gönderim ve alım yolunu değiştirir; eski mesajların hiçbirini taşımaz. Başarılı bir e-posta taşıma için verileri doğrudan kaynak sunucudan hedef sunucuya aktarmanız gerekir.
E-posta Taşımaya Başlamadan Önce Hazırlık
Herhangi bir işlemden önce ayrıntılı bir kontrol listesi hazırlayın. Bu aşamada acele etmek, veri kaybının en yaygın nedenidir.
1. Kaynak Sunucunun Protokolünü ve Ayarlarını Belirleme
Öncelikle kutularınızın gerçekten IMAP kullandığından emin olun, POP3 değil. POP3'te mesajlar genellikle yerel istemciye indirilir ve sunucuda yalnızca geçici bir kopya bulunur. POP3 kullanıyorsanız, e-posta taşıma protokol üzerinden değil, yerel dosyalar aracılığıyla yapılmalıdır.
Kontrol etmek için e-posta istemcinizin (Outlook veya Thunderbird gibi) ayarlarına bakın. 143 veya 993 (SSL) portunu görüyorsanız, bu IMAP'tir. 110 veya 995 portu POP3'ü gösterir.
Ayrıca kaynak hosttan şu bilgileri alın:
- IMAP sunucu adresi (örneğin
mail.example.com) - Port ve şifreleme türü (SSL/TLS veya STARTTLS)
- Her kutu için kullanıcı adı ve şifre
- Tüm kutuların ve e-posta adreslerinin tam listesi
2. Disk Kullanımını ve Hedef Sunucu Limitlerini Kontrol Etme
Başlamadan önce toplam veri boyutunu ölçün. Kaynak sunucuda şu komutu kullanabilirsiniz:
du -sh /home/*/mail/*
Bu komut cPanel hostlarında genellikle her kutunun boyutunu gösterir. Toplam boyut hedef hostun disk kotasından büyükse, ya daha fazla alan satın almanız ya da eski e-postaları arşivlemeniz gerekir. Aksi takdirde, e-posta taşıma eksik kalır ve fazla mesajlar kuyrukta bekler.
3. Kutulardan Tam Yedek Alma
Asla yedek almadan e-posta taşımaya başlamayın. En basit yöntem, hostun kendi yedekleme özelliğini kullanmaktır. cPanel'de Backup bölümünden Download a Full Website Backup seçeneğini seçin ve e-posta bölümünün işaretli olduğundan emin olun. Bu dosya, klasör yapısıyla birlikte tüm kutuları içerir.
SSH erişiminiz varsa, mail klasörünü doğrudan yedekleyebilirsiniz:
tar -czf mail_backup.tar.gz /home/username/mail/
Bu yedeği yerel sisteminizde veya bir bulut depolama alanında saklayın. Taşıma sırasında bir sorun olursa, önceki duruma dönebilirsiniz.
IMAP ile E-posta Taşımanın Ana Yöntemleri
İki IMAP sunucusu arasında e-posta taşımak için üç yaygın yöntem vardır. Yöntem seçimi, kutu sayısına, veri hacmine ve erişim seviyenize bağlıdır.
Birinci Yöntem: imapsync Aracını Kullanma (Önerilen)
imapsync bu iş için en popüler açık kaynaklı araçtır. Bu araç, iki IMAP sunucusu arasında klasörleri, mesajları, bayrakları ve hatta takvimi senkronize eder. Linux'ta kurulumu basittir:
sudo apt-get install imapsync # Ubuntu/Debian için
sudo yum install imapsync # CentOS/RHEL için
Ardından her kutu için şu komutu çalıştırın:
imapsync --host1 mail.oldserver.com --user1 info@example.com --password1 'OldPass123' \
--host2 mail.newserver.com --user2 info@example.com --password2 'NewPass456' \
--ssl1 --ssl2 --syncinternaldates
Parametrelerin açıklaması:
--host1ve--host2: Kaynak ve hedef sunucu adresleri--user1ve--user2: Tam e-posta adresi--ssl1ve--ssl2: SSL şifrelemesini etkinleştirme--syncinternaldates: Mesajların orijinal alım tarihini koruma
Kutu sayısı fazlaysa, bir döngü betiği yazın:
#!/bin/bash
while IFS=',' read -r email pass; do
imapsync --host1 mail.oldserver.com --user1 "$email" --password1 "$pass" \
--host2 mail.newserver.com --user2 "$email" --password2 "$pass" \
--ssl1 --ssl2 --syncinternaldates
done < accounts.txt
accounts.txt dosyasını her satırda email,password formatında oluşturun.
SSL certificate verify failed hatası alırsanız, kaynak sunucunun SSL sertifikası büyük olasılıkla geçerli değildir. Test için --ssl1 --sslargs1 SSL_verify_mode=0 parametresini kullanabilirsiniz, ancak bunu yalnızca geçici olarak yapın ve taşıma sonrasında sertifikayı düzeltin.İkinci Yöntem: E-posta İstemcisi ile Manuel Taşıma (Düşük Hacim İçin)
Yalnızca birkaç düşük hacimli kutunuz varsa (örneğin 2 GB'den az), Thunderbird kullanabilirsiniz. Adımlar:
- Eski e-posta hesabını Thunderbird'e ekleyin (IMAP).
- Tüm mesajların indirilmesini bekleyin (birkaç saat sürebilir).
- Yeni hesabı da ekleyin.
- Klasörleri eski hesaptan yeni hesaba sürükleyip bırakın.
Bu yöntem büyük e-posta taşıma için uygun değildir, çünkü istemci bellek tüketebilir ve işlem kesilebilir. Ayrıca klasör sırası ve bazı bayraklar bozulabilir.
Üçüncü Yöntem: Dosyaları Doğrudan Taşıma (Yalnızca Benzer Hostlar İçin)
Her iki host da cPanel veya DirectAdmin kullanıyorsa ve dosya yapısı aynıysa, mail dosyalarını doğrudan kopyalayabilirsiniz. Önce kaynak sunucuda:
tar -czf mail_transfer.tar.gz /home/username/mail/
Ardından dosyayı hedef sunucuya aktarın (örneğin scp ile):
scp mail_transfer.tar.gz user@newserver.com:/home/username/
Hedef sunucuda dosyayı arşivden çıkarın:
cd /home/username/
tar -xzf mail_transfer.tar.gz
Ardından dosya sahipliğini düzeltin:
chown -R username:mail /home/username/mail/
Uyarı: Bu yöntem yalnızca mail depolama formatı (Maildir veya mbox gibi) ve kontrol paneli sürümü aynıysa çalışır. Aksi takdirde, mesajlar bozulur veya okunamaz hale gelir.
E-posta Taşıma Sonrası: Kontrol ve DNS Değişikliği
Taşıma tamamlandıktan sonra, DNS'i değiştirmeden önce verilerin doğruluğunu kontrol edin.
Mesaj ve Klasör Sayısını Kontrol Etme
E-posta istemcisinde, her klasördeki mesaj sayısını eski ve yeni sunucuda karşılaştırın. Her iki sunucuda da şu komutu kullanabilirsiniz:
find /home/username/mail/ -type f -name "cur/*" | wc -l
Bu komut, cur klasöründeki (okunmuş mesajlar) mesaj dosyalarının sayısını gösterir. Sayılar aynı olmalıdır.
DNS Kayıtlarını Değiştirme
Tüm verilerin aktarıldığından emin olduğunuzda, e-posta ile ilgili MX ve A kayıtlarını değiştirin. DNS'inizde MX kaydını yeni sunucu adresine yönlendirin:
example.com. MX 10 mail.newserver.com.
Ayrıca mail.example.com için A kaydını yeni sunucunun IP'sine değiştirin. Değişiklikten sonra DNS'in tüm internette güncellenmesi 1 ila 24 saat sürer.
Sorunsuz E-posta Taşıma için Ek İpuçları
Gönderim ve Alım Kuyruğunu Yönetme
Taşımayı düşük trafik saatlerinde yapmak daha iyidir. Taşıma sırasında kutulara yeni e-postalar eklenirse, bunlar gözden kaçabilir. Birkaç saat boyunca eski sunucuya e-posta gönderimini durdurabilir veya yalnızca yeni mesajları senkronize eden --regextrans2 parametresi gibi araçları kullanabilirsiniz.
DNS Değişikliği Sonrası Tam Test
DNS değişikliğinden sonra şunları test edin:
- Dahili ve harici adreslere e-posta gönderme ve alma
- Yeni şifreyle webmail'e giriş
- Masaüstü ve mobil istemcilerin bağlantısı
- Spam ve Taslaklar klasörlerinin kontrolü
Eski Sunucuyu Birkaç Gün Tutma
Eski sunucuyu en az 72 saat kapatmayın. Bir kullanıcı e-postalarının eksik olduğunu fark ederse, eski sunucudan tekrar taşıma yapabilirsiniz. Tam emin olduktan sonra eski sunucudaki kutuları silebilirsiniz.
Özet
E-posta taşıma IMAP ile doğru araç ve dikkatli planlama yapılırsa yönetilebilir bir süreçtir. Anahtar nokta, DNS'i asla bir taşıma aracı olarak görmemektir; DNS yalnızca yolu değiştirir, verileri taşımaz. imapsync kullanarak, tam yedek alarak ve taşıma sonrası dikkatli kontrol yaparak hiçbir mesajın kaybolmadığından emin olabilirsiniz.
E-posta barındırma için uygun altyapıya sahip bir host arıyorsanız, ServerNet web hosting ve bulut sunucu hizmetleri sunar ve taşıma hedefiniz için uygun bir seçenek olabilir. Ancak her durumda, güvenli ve hatasız bir taşıma için bu makaledeki teknik adımları izleyin.