New migration job
| ID | Source | Destination | Status | Started | Finished | Exit |
|---|
คู่มือการใช้งาน imapsync Web UI
เครื่องมือนี้เป็นหน้าเว็บสำหรับสั่งรัน imapsync เพื่อย้าย/ซิงก์กล่องเมล (mailbox) ระหว่างเซิร์ฟเวอร์ IMAP สองฝั่ง โดยไม่ต้องพิมพ์คำสั่งเองใน terminal
1. เข้าสู่ระบบ
ต้อง login ด้วย username/password ที่ผู้ดูแลระบบตั้งให้ก่อนจึงจะใช้งานได้ ระบบจะจำ session ไว้ประมาณ 8 ชั่วโมง หลังจากนั้นต้อง login ใหม่ กด "Sign out" มุมขวาบนเพื่อออกจากระบบได้ทุกเมื่อ
2. สร้างงาน migration ใหม่ (New migration job)
กรอกข้อมูลเซิร์ฟเวอร์ต้นทาง (Source) และปลายทาง (Destination) ให้ครบทั้งสองฝั่ง:
- Host — ที่อยู่เซิร์ฟเวอร์ IMAP เช่น
imap.gmail.com - Port — พอร์ตที่ใช้เชื่อมต่อ ถ้าเว้นว่าง imapsync จะเลือกพอร์ตมาตรฐานให้อัตโนมัติตามชนิดการเข้ารหัสที่เลือก (ปกติ 993 สำหรับ SSL, 143 สำหรับ STARTTLS/plain)
- Encryption — เลือกรูปแบบการเข้ารหัสการเชื่อมต่อ:
SSL/TLS(เข้ารหัสตั้งแต่ต้น แนะนำ),STARTTLS(เริ่มแบบ plain แล้วอัปเกรดเป็นเข้ารหัส), หรือNone(ไม่เข้ารหัส — ใช้เฉพาะกรณีจำเป็นจริงๆ เช่น เซิร์ฟเวอร์ภายในที่ไม่รองรับ SSL) - User / Password — บัญชีผู้ใช้ที่จะใช้ล็อกอินเข้ากล่องเมลนั้นๆ ระบบไม่เก็บรหัสผ่านลงฐานข้อมูล — ใช้แค่ตอนสั่งรันงานเท่านั้น
3. ตัวเลือก (Options)
ค่าที่เลือกจะถูกแปลงเป็น flag ของ imapsync โดยตรง (ไม่มีการต่อ string ผ่าน shell จึงปลอดภัยจาก command injection):
--dry— โหมดทดสอบ ทำทุกอย่างเหมือนจริงแต่ไม่เขียนข้อมูลจริงที่ปลายทาง ใช้เช็คก่อนรันจริงเสมอเพื่อดูว่าค่าที่ตั้งถูกต้องหรือไม่--syncflags— ซิงก์สถานะของอีเมล (เช่น อ่านแล้ว/ยังไม่อ่าน/ตอบกลับแล้ว) จากต้นทางไปปลายทางด้วย ไม่ใช่แค่เนื้อหาอีเมล--syncflagsaftercopy— ซิงก์สถานะอีเมลอีกรอบ "หลัง" จากคัดลอกเสร็จ ใช้แก้ปัญหาบางเซิร์ฟเวอร์ปลายทางที่ auto-mark อีเมลใหม่เป็น "อ่านแล้ว" ทันทีที่รับเข้า--automap— จับคู่โฟลเดอร์มาตรฐาน (Sent, Trash, Drafts, Junk ฯลฯ) ระหว่างสองระบบให้อัตโนมัติ แม้ชื่อโฟลเดอร์จะเรียกไม่เหมือนกันทุกตัวอักษร--subscribeall— subscribe ทุกโฟลเดอร์ที่ถูกสร้างขึ้นใหม่ที่ฝั่งปลายทางให้อัตโนมัติ (ปกติโฟลเดอร์ใหม่จะไม่ถูก subscribe ให้เอง ผู้ใช้จะมองไม่เห็นในบาง mail client)--skipcrossduplicates— ข้ามอีเมลที่มีเนื้อหาเดียวกันซ้ำกันในหลายโฟลเดอร์ ไม่คัดลอกซ้ำซ้อน--maxage/--minage— จำกัดช่วงอายุของอีเมล (หน่วยเป็นวัน) ที่จะซิงก์ เช่น ใส่--minage 30จะซิงก์เฉพาะอีเมลที่เก่ากว่า 30 วัน (มีประโยชน์เวลาต้องการย้ายเฉพาะเมลเก่าไป archive ก่อน)--maxbytespersecond— จำกัดความเร็วในการโอนข้อมูล (bytes/วินาที) เพื่อไม่ให้กิน bandwidth เซิร์ฟเวอร์ทั้งหมดระหว่างรันงาน--exclude— ใส่ regular expression ของชื่อโฟลเดอร์ที่ต้องการข้าม ไม่ซิงก์ (พิมพ์ได้หลายบรรทัด บรรทัดละ 1 รูปแบบ)--folder— ระบุเฉพาะโฟลเดอร์ที่ต้องการซิงก์ (ถ้าปล่อยว่างไว้ = ซิงก์ทุกโฟลเดอร์) พิมพ์ได้หลายบรรทัด บรรทัดละ 1 โฟลเดอร์- Advanced raw args — ช่องสำหรับใส่ flag อื่นๆ ของ imapsync ที่ไม่มีตัวเลือกให้ในหน้านี้ พิมพ์ 1 อาร์กิวเมนต์ต่อ 1 บรรทัดเท่านั้น (ห้ามพิมพ์รวมกันในบรรทัดเดียวคั่นด้วยช่องว่าง เพราะระบบจะไม่แยกคำให้ แต่ละบรรทัดจะถูกส่งเป็น argument เดี่ยวๆ ตรงๆ ไปยัง imapsync)
imapsync --help หรือเอกสารทางการของโปรเจกต์ แล้วนำมาใส่ในช่อง Advanced raw args ได้เลย4. คิวงาน (Job queue)
ระบบรันงานพร้อมกันได้สูงสุด 2 งานในเวลาเดียวกัน หากกดสร้างงานเกินกว่านั้น งานที่เกินจะขึ้นสถานะ queued รอคิวโดยอัตโนมัติ ไม่ต้องกดสั่งซ้ำ
5. ดู log สด (Live log)
หลังกด "Start job" ระบบจะเปิดหน้าต่าง log แบบเรียลไทม์ให้ทันที เห็นผลลัพธ์ของ imapsync ขณะกำลังรันเหมือนดูหน้าจอ terminal สด สถานะงานจะแสดงเป็น queued → running → success หรือ error หากต้องการหยุดงานที่กำลังรันอยู่กะทันหัน กดปุ่ม Cancel ได้
6. ประวัติงาน (Job history)
ตารางด้านล่างเก็บประวัติงานทั้งหมดที่เคยรัน พร้อมสถานะ, เวลาที่เริ่ม/จบ และ exit code ของ imapsync (exit code 0 คือสำเร็จ)
- View log — เปิดดู log แบบเต็มของงานนั้นย้อนหลังได้ แม้งานจะรันจบไปแล้ว
- Re-run — ดึงค่า host/user ของงานเดิมมาเติมในฟอร์มให้อัตโนมัติ แต่ต้องกรอกรหัสผ่านใหม่ทุกครั้ง เพราะระบบไม่เก็บรหัสผ่านไว้ เมื่อรันซ้ำ imapsync จะข้ามอีเมลที่เคยซิงก์ไปแล้วโดยอัตโนมัติ (ตรวจสอบจาก header ของอีเมลที่ปลายทาง) ทำให้ใช้ฟีเจอร์นี้เป็นกลไก "รันต่อ" งานที่ค้างหรือหลุดกลางทางได้โดยไม่ต้องเริ่มใหม่ทั้งหมด
7. เรื่องความปลอดภัย
*** ก่อนบันทึกเสมอ) และทุกคำสั่งถูกส่งไปยัง imapsync แบบ argument array โดยตรง ไม่ผ่าน shell จึงไม่มีช่องโหว่ command injection จากช่องกรอกข้อมูลใดๆ
ถึงอย่างนั้น ควรใช้บัญชีที่มีสิทธิ์เท่าที่จำเป็นสำหรับงาน migration และเปลี่ยนรหัสผ่านของบัญชีเมลหลังย้ายเสร็จหากมีความเสี่ยง