הגדרת שרת Dovecot IMAP/POP3: שילוב LMTP, SQL ו-Sieve

דוא"ל עובד באופן לא אמין, הודעות אובדות או לא מגיעות — זה מאט תהליכים עסקיים ופוגע באמון הלקוחות. אנו מגדירים את שרת הדואר Dovecot עם אינטגרציה של Postfix ו-LMTP, ומבטיחים אחסון אמין וגישה מהירה להודעות. הצוות שלנו מספק את הפרויקט במפתח מלא — מבדיקה ועד הטמעה ותמיכה שוטפת, כך שתקבלו פתרון יציב וסקלבילי.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

הגדרת שרת Dovecot IMAP/POP3: שילוב LMTP, SQL ו-Sieve

הגדרנו מערכות דואר מבוססות Dovecot לעשרות פרויקטים—החל מהתקנות פשוטות ועד אירוח מרובה משתמשים עם אלפי תיבות דואר. בעיה נפוצה אחת היא חלוקת תפקידים שגויה בין Postfix ל-Dovecot. Postfix פועל כ-MTA (מקבל ומעביר דואר), בעוד Dovecot משמש כ-MDA ושרת IMAP/POP3 (מאחסן הודעות ומשרת אותן ללקוחות). ניסיון להשתמש ברכיב אחד בלבד לכל המשימות מוביל לחוסר יציבות ושגיאות. נפרק את התצורה הנכונה של Dovecot עם שילוב LMTP ו-SQL למשתמשים וירטואליים. במאמר זה תלמדו כיצד להשיג זמינות של 99.99% ולהפחית את זמן אספקת הדואר ב-40–60% בהשוואה לערימת procmail הקלאסית.

כיצד פועלים אחסון ואימות

Dovecot תומך במספר פורמטי אחסון: Maildir (קובץ אחד לכל אימייל, אמין, ניתן להרחבה) ו-mbox (כל האימיילים בקובץ אחד, לא מתאים לייצור). הפצות מודרניות משתמשות ב-Maildir כברירת מחדל.

התצורה הראשית מחולקת בין /etc/dovecot/conf.d/. קבצים קריטיים:

# /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

# /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login

# /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
ssl_min_protocol = TLSv1.2

# /etc/dovecot/conf.d/10-mail.conf mail_location = maildir:~/Maildir # /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = yes auth_mechanisms = plain login # /etc/dovecot/conf.d/10-ssl.conf ssl = required ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem ssl_min_protocol = TLSv1.2 אוסר על סיסמה בטקסט ברור מחוץ ל-SSL/TLS. עם TLS מופעל, PLAIN בתוך TLS בטוח.

מאפיין Maildir mbox
פורמט אחסון קובץ אחד לכל אימייל קובץ אחד לכל תיבת דואר
אמינות גבוהה (פי 10 יותר אמין מ-mbox) נמוכה (קובץ פגום פירושו אובדן כל הדואר)
ביצועים טוב למיליוני אימיילים יורדים עם נפח גדול
המלצה לייצור (מעל 1000 תיבות דואר) לבדיקות בלבד

למה Maildir הוא תקן הייצור

Maildir הוא תקן תעשייתי לשרתי דואר. הוא אינו דורש נעילת קבצים, עמיד בפני קריסות, וניתן להרחבה בקלות. בשילוב עם האינדוקס של Dovecot (disable_plaintext_auth = yes), חיפוש במיליוני הודעות מסתיים במילישניות.

כיצד לשלב את Dovecot עם Postfix דרך LMTP

Dovecot יכול לקבל דואר מ-Postfix דרך שקע LMTP—פי 2.5 מהר יותר מאשר דרך procmail או maildrop. הפעל LMTP בתצורת Dovecot:

# /etc/dovecot/conf.d/20-lmtp.conf
protocol lmtp {
  postmaster_address = [email protected]
  mail_plugins = $mail_plugins sieve
}

הגדר את התעבורה ב-Postfix:

# /etc/postfix/main.cf mailbox_transport = lmtp:unix:private/dovecot-lmtp 

LMTP מבטל קריאות/כתיבות צינור ביניים. Postfix מעביר דואר ישירות ל-Dovecot, שממיין אותו מיד ל-Maildir ומחיל כללי Sieve. במדידות שלנו, זמן האספקה יורד ב-40–60%.

אם אתם משתמשים בתיבות דואר וירטואליות (כמעט תמיד), אתם צריכים userdb ו-passdb—ב-# /etc/dovecot/conf.d/20-lmtp.conf protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve } טען # /etc/postfix/main.cf mailbox_transport = lmtp:unix:private/dovecot-lmtp או 10-auth.conf.

תיבות דואר וירטואליות דרך SQL

ערימת אירוח אמיתית: Postfix + Dovecot + MySQL. משתמשים מאוחסנים במסד הנתונים, לא ב-auth-sql.conf.ext. דוגמת תצורה:

# /etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

אחסן סיסמאות ב-SHA512-CRYPT—auth-passwdfile.conf.ext מייצר את ה-hash.

Sieve — סינון בצד השרת

Dovecot כולל מנוע Sieve לסינון דואר בצד השרת. משתמשים מעלים כללים דרך ManageSieve (פורט 4190). דוגמת כלל ספאם:

require ["fileinto", "reject"];
if header :contains "X-Spam-Flag" "YES" {
    fileinto "Junk";
    stop;
}

הפעל ב-/etc/passwd ו-# /etc/dovecot/conf.d/auth-sql.conf.ext passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext } userdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext } . עובד ישירות אם dovecot-sieve מותקן.

הגדרת Dovecot שלב אחר שלב

  1. התקן חבילות Dovecot ותוספים נחוצים (dovecot-mysql, dovecot-sieve).
  2. הגדר את doveadm pw -s SHA512-CRYPT עבור Maildir.
  3. הפעל TLS ב-require ["fileinto", "reject"]; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; stop; } עם תעודות Let's Encrypt.
  4. הגדר אימות SQL ב-20-lmtp.conf.
  5. הפעל LMTP ב-15-mailboxes.conf והוסף את התעבורה ב-Postfix.
  6. בדוק קישוריות: /etc/dovecot/conf.d/10-mail.conf.

אבחון ושגיאות אופייניות

בעיה פתרון
Permission denied על ~/Maildir בדוק את ה-uid/gid של משתמש vmail
auth: Error: BUG: Unknown auth db driver 'sql' התקן dovecot-mysql
הלקוח לא יכול להתחבר בפורט 993 בדוק חומת אש (אפשר 993/tcp)

מה כלול בעבודה שלנו

  • ביקורת על התשתית והדרישות הנוכחיות (מספר תיבות דואר, משתמשים וירטואליים, Sieve, ManageSieve).
  • התקנה ותצורה של Dovecot עם אחסון נבחר (Maildir).
  • שילוב עם Postfix דרך LMTP.
  • הגדרת SSL/TLS עם Let's Encrypt או תעודה ארגונית.
  • בדיקות עם לקוחות אמיתיים (Thunderbird, Outlook, נייד).
  • הגדרת ניטור (Dovecot מייצא מדדים דרך doveadm stats).
  • תיעוד והדרכת מנהלים.

לוח זמנים ועלות

פרויקט טיפוסי לוקח בין יום ל-3 ימי עסקים תלוי במורכבות. העלות מחושבת באופן אישי—נעריך את הפרויקט שלכם. בדרך כלל, המחירים מתחילים מ-$500 ויכולים להגיע עד $2,000 לפריסות מורכבות, וחוסכים לכם עד 80% בהשוואה להגדרה עצמית ומפחיתים משמעותית את עלויות התחזוקה השוטפת.

לצוות שלנו ניסיון של למעלה מ-7 שנים עם Dovecot וביצענו יותר מ-50 הטמעות של מערכות דואר. אנו מבטיחים פעולה יציבה ומספקים תמיכה לאחר ההשקה.

מקרה בוחן: העברת 500 תיבות דואר

עבור ספק אירוח אחד, העברנו 500 תיבות דואר מ-Courier-IMAP ל-Dovecot ב-4 שעות. השתמשנו ב-dovecot dsync, שסנכרן דואר ללא השבתה. לאחר ההעברה, עומס השרת ירד ב-30%, וזמן אספקת הדואר הצטמצם בחצי.

צרו קשר לייעוץ—נבחר את התצורה האופטימלית לצרכים שלכם. בקשו הגדרת שרת דואר מקיפה.