.\" $OpenBSD: smtpd.conf.5,v 1.278 2025/08/26 13:46:59 sthen Exp $ .\" .\" Copyright (c) 2008 Janne Johansson .\" Copyright (c) 2009 Jacek Masiulaniec .\" Copyright (c) 2012 Gilles Chehade .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .\" .Dd $Mdocdate: August 26 2025 $ .Dt SMTPD.CONF 5 .Os .Sh "نام (NAME)" .Nm smtpd.conf .Nd پرونده پیکربندی دیمن SMTP .Sh "توضیحات (DESCRIPTION)" .Nm پرونده پیکربندی برای دیمن ارسال و دریافت ایمیل .Xr smtpd 8 است. .Pp هنگام رسیدن ایمیل، هر دستور .Dq RCPT TO: یک پاکت نامه (envelope) تولید می‌کند. اگر یک پاکت با هر یک از معیارهای از پیش تعیین‌شده مطابقت داشته باشد (با استفاده از دستورالعمل .Ic match ) ، پیام برای تحویل پذیرفته می‌شود. یک رونوشت از پیام و همچنین پاکت‌های مربوط به آن، در صف ایمیل ذخیره شده و بعداً طبق مجموعه‌ای از اقدامات مرتبط (با استفاده از دستورالعمل .Ic action ) ارسال می‌گردد. اگر پاکتی با هیچ گزینه‌ای مطابقت نداشته باشد، رد می‌شود. قوانین تطبیق به صورت متوالی ارزیابی می‌شوند و نخستین تطبیق اعمال خواهد شد. .Pp قالب پرونده پیکربندی نسبتاً انعطاف‌پذیر است. خط جاری می‌تواند با استفاده از یک بک‌اسلش .Pq Sq \e به چند خط امتداد یابد. توضیحات را می‌توان با استفاده از نماد هش .Pq Sq # در هر کجای پرونده قرار داد و تا انتهای خط جاری امتداد می‌یابند. هنگام کامنت‌گذاری متن‌های چندخطی باید دقت کرد: توضیح تا پایان کل بلوک معتبر خواهد بود. نام آرگومان‌هایی که با حرف، عدد یا زیرخط شروع نمی‌شوند، و همچنین کلمات رزروشده (مانند .Ic listen , .Ic match , و .Cm port ) ، باید داخل نقل‌قول قرار گیرند. آرگومان‌های حاوی فاصله‌های خالی باید در میان گیومه دوتایی .Pq \&" محصور شوند. .Pp یک ماکرو با دستوری به شکل .Ar name Ns = Ns Ar value تعریف می‌شود. نام ماکرو .Ar name می‌تواند شامل حروف، اعداد و زیرخط باشد و نباید یک کلمه رزروشده باشد. درون آرگومان‌های بدون نقل‌قول، عبارت .Pf $ Ar name بعداً به .Ar value گسترش می‌یابد. .Pp برای نمونه: .Bd -literal -offset indent lan_addr = "192.168.0.1" listen on $lan_addr listen on $lan_addr tls auth .Ed .Pp دستور زبان .Nm در زیر شرح داده شده است. .Bl -tag -width Ds .It Ic action Ar name method Op Ar options هنگامی که پردازشگر صف، پاکتی را از صف ایمیل پردازش می‌کند، اقدام .Ic action .Ar name را که توسط دستورالعمل .Ic match No ... Cm action در زمان دریافت پیام انتخاب شده است، اجرا می‌کند. دستورالعمل .Ic action داده‌های پیکربندی را برای تلاش‌های تحویل فراهم می‌سازد. جستجوهای لازم در زمان هر تلاش برای تحویل انجام می‌شوند. در نتیجه، تغییر یک دستورالعمل .Ic action یا پرونده‌های ارجاع‌شده توسط آن و راه‌اندازی مجدد دیمن .Xr smtpd 8 باعث اعمال تغییرات برای تلاش‌های بعدی تحویل برای ارسال‌کننده مربوطه .Ar name می‌شود، حتی برای پیام‌هایی که پیش از تغییرات پیکربندی در صف گیر کرده بودند. .Pp پارامتر روش تحویل .Ar method می‌تواند یکی از موارد زیر باشد: .Bl -tag -width Ds .It Cm expand-only تنها در صورتی پیام را بپذیر که یک روش تحویل در پرونده نام‌های مستعار یا .Pa .forward مشخص شده باشد. .It Cm forward-only تنها در صورتی پیام را بپذیر که گیرنده پس از پردازش نام‌های مستعار یا پرونده forward به یک نشانی راه دور منتهی شود. .It Cm lmtp Ar destination Op Cm rcpt-to پیام را به یک سرور LMTP در .Ar destination تحویل بده. مکان می‌تواند به صورت host:port یا به صورت یک سوکت یونیکس بیان شود. .Pp به صورت اختیاری، .Cm rcpt-to می‌تواند مشخص شود تا به جای کاربر محلی، از نشانی ایمیل گیرنده (پس از بسط) در نشست LMTP به عنوان RCPT TO استفاده شود. .It Cm maildir Oo Ar pathname Oc Op Cm junk پیام را به maildir در .Ar pathname (در صورت تعیین) یا به طور پیش‌فرض به .Pa ~/Maildir تحویل بده. .Pp مسیر .Ar pathname می‌تواند شامل مشخص‌کننده‌های قالبی باشد که پیش از استفاده بسط می‌یابند .Pq نگاه کنید به Sx FORMAT SPECIFIERS . .Pp اگر آرگومان .Cm junk ارائه شود، پیام در صورتی که حاوی سربرگ مثبت .Ql X-Spam باشد به پوشه .Ql Junk منتقل خواهد شد. این پوشه اگر هنوز وجود نداشته باشد، در زیر .Ar pathname ایجاد خواهد شد. .It Cm mbox پیام را با .Xr mail.local 8 به mbox کاربر تحویل بده. .It Cm mda Ar command تحویل را به یک .Ar command محول کن که پیام را روی ورودی استاندارد خود دریافت می‌کند .Pq نگاه کنید به Sx MDA COMMANDS . .Pp دستور .Ar command می‌تواند حاوی مشخص‌کننده‌های قالب باشد که پیش از استفاده بسط می‌یابند .Pq نگاه کنید به Sx FORMAT SPECIFIERS . .It Cm relay پیام را به یک سرور SMTP دیگر بازپخش کن. .El .Pp روش‌های تحویل محلی از گزینه‌های اضافی زیر پشتیبانی می‌کنند: .Bl -tag -width Ds .It Cm alias Pf < Ar table Ns > از جدول نگاشت .Ar table برای بسط .Xr aliases 5 استفاده کن. .It Xo .Cm ttl .Sm off .Ar n .Brq Cm s | m | h | d .Sm on .Xc مدت زمانی را که یک پیام می‌تواند در صف بماند مشخص کن. .It Cm user Ar username نام کاربری .Ar username را برای انجام تحویل مشخص کن که با .Xr getpwnam 3 جستجو می‌شود. .Pp این گزینه برای میزبانی مجازی که در آن یک نام کاربری واحد مسئول مدیریت تحویل برای همه کاربران مجازی است به کار می‌رود. .Pp این گزینه با روش تحویل .Cm mbox قابل استفاده نیست. .Pp تنها پرونده .Pa .forward کاربر تحویل پردازش خواهد شد. .It Cm userbase Pf < Ar table Ns > از جدول نگاشت .Ar table برای جستجوی کاربران به جای تابع .Xr getpwnam 3 استفاده کن. .Pp گزینه .Cm userbase روی گزینه .Cm user اعمال نمی‌شود. .It Cm virtual Pf < Ar table Ns > از جدول نگاشت .Ar table برای بسط مجازی استفاده کن. قالب جدول نام‌های مستعار در .Xr table 5 شرح داده شده است. .It Cm wrapper Ar name از بسته‌بندی (wrapper) مشخص‌شده در .Cm mda wrapper استفاده کن. .El .Pp روش‌های تحویل بازپخش (relay) نیز از گزینه‌های اضافی پشتیبانی می‌کنند: .Bl -tag -width Ds .It Cm backup به عنوان مبادله‌کننده ایمیل پشتیبان عمل کن و پیام‌ها را به هر مبادله‌کننده ایمیل با اولویت بالاتر تحویل بده. .It Cm backup mx Ar name به عنوان مبادله‌کننده ایمیل پشتیبان عمل کن و پیام‌ها را به هر مبادله‌کننده‌ای با اولویت بالاتر از مبادله‌کننده مشخص‌شده با نام .Ar name تحویل بده. .It Cm ca Ar caname برای اتصالات امن، از مرجع صدور گواهی مرتبط با .Ar caname (که در دستورالعمل .Ic ca تعریف شده) برای اعتبارسنجی هویت سرور استفاده کن. .It Cm helo Ar heloname نام .Ar heloname را به عنوان نام میزبان در طول فاز HELO به سایر مبادله‌کنندگان ایمیل معرفی کن. .It Cm helo-src Pf < Ar table Ns > از جدول نگاشت .Ar table برای جستجوی نام میزبان منطبق با نشانی مبدا استفاده کن تا در طول فاز HELO معرفی شود. .It Cm domain Pf < Ar domains Ns > جستجوی MX انجام نده، بلکه دامنه مقصد را در .Ar domains جستجو کن و از آدرس relay url منطبق به عنوان میزبان بازپخش استفاده نما. .It Cm host Ar relay-url جستجوی MX انجام نده، بلکه پیام‌ها را به میزبان بازپخش شرح داده شده در .Ar relay-url بازپخش کن. قالب .Ar relay-url عبارت است از: .Sm off .Op Ar proto No :// Op Ar label No @ .Ar host Op : Ar port . .Sm on پروتکل‌های زیر در دسترس هستند: .Pp .Bl -tag -width "smtp+notls" -compact .It smtp نشست استاندارد SMTP با STARTTLS فرصت‌طلبانه (پیش‌فرض). .It smtp+tls نشست استاندارد SMTP با STARTTLS اجباری. .It smtp+notls نشست متن ساده SMTP بدون TLS. .It lmtp نشست LMTP. مشخص کردن .Ar port الزامی است. .It smtps نشست SMTP با TLS اجباری هنگام برقراری اتصال. درگاه پیش‌فرض ۴۶۵ است. .El .Pp مگر در مواردی که ذکر شده، مقدار پیش‌فرض .Ar port برابر ۲۵ است. .Pp برچسب .Ar label با یک مدخل در جدول مشخصات هویتی مطابقت دارد، همان‌طور که در .Xr table 5 مستند شده است. از آن با پروتکل‌های .Dq smtp+tls و .Dq smtps برای احراز هویت استفاده می‌شود. گواهی‌های سرور برای این پروتکل‌ها به طور پیش‌فرض اعتبارسنجی می‌شوند. .It Cm pki Ar pkiname برای اتصالات امن، از گواهی مرتبط با .Ar pkiname (که در دستورالعمل .Ic pki تعریف شده) برای اثبات هویت کلاینت به سرور ایمیل راه دور استفاده کن. .It Cm srs هنگام بازپخش ایمیلی که ناشی از فوروارد است، از طرح بازنویسی فرستنده (Sender Rewriting Scheme) برای بازنویسی نشانی فرستنده استفاده کن. .It Cm tls Op Cm no-verify استفاده از TLS را هنگام بازپخش الزامی کن، که به طور پیش‌فرض از STARTTLS اجباری استفاده می‌کند. هنگامی که با یک میزبان هوشمند (smarthost) استفاده می‌شود، پروتکل نباید .Dq smtp+notls:// باشد. اگر .Cm no-verify مشخص شود، داشتن گواهی معتبر الزامی نیست. .It Cm protocols Ar protostr نسخه‌های پروتکل مورد استفاده برای نشست‌های TLS را تعریف کن. برای اطلاع از قالب .Ar protostr به صفحه راهنمای .Xr tls_config_parse_protocols 3 مراجعه فرمایید. .It Cm ciphers Ar cipherstr فهرست رمزنگاره‌هایی را که می‌توان برای نشست‌های TLS استفاده کرد، تعریف کن. برای اطلاع از قالب .Ar cipherstr به صفحه راهنمای .Xr tls_config_set_ciphers 3 مراجعه فرمایید. .It Cm auth Pf < Ar table Ns > از جدول نگاشت .Ar table برای اتصال به .Ar relay-url با استفاده از مشخصات هویتی استفاده کن. این گزینه تنها با گزینه .Cm host قابل استفاده است. قالب جدول مشخصات هویتی در .Xr table 5 شرح داده شده است. .It Cm mail-from Ar mailaddr از .Ar mailaddr به عنوان نشانی MAIL FROM در تبادل SMTP استفاده کن. .It Cm src Ar sourceaddr | Pf < Ar sourceaddr Ns > از رشته یا جدول فهرست .Ar sourceaddr برای نشانی IP مبدا استفاده کن، که در دستگاه‌هایی با چندین رابط کاربری مفید است. اگر فهرست حاوی بیش از یک نشانی باشد، از همه آن‌ها به گونه‌ای استفاده می‌شود که ترافیک تا حد امکان بهینه مسیریابی شود. .El .It Ic admd Ar authservid دامنه مدیریت اداری (Administrative Management Domain) که این سرور ایمیل متعلق به آن است. شناسه authservid به فیلترهایی که از آن برای شناسایی یا علامت‌گذاری سربرگ‌های authentication-results استفاده می‌کنند ارسال خواهد شد. در صورت حذف، مقدار پیش‌فرض نام سرور خواهد بود. .It Ic bounce Cm warn-interval Ar delay Op , Ar delay ... هنگامی که خطاهای موقت تحویل باعث می‌شوند پیامی بیش از .Ar delay در صف بماند، پیام‌های هشدار را به فرستنده پاکت ارسال کن. هر پارامتر .Ar delay شامل یک عدد صحیح مثبت دهدهی و یک واحد .Cm s , m , h , یا .Cm d است. حداکثر چهار پارامتر .Ar delay را می‌توان مشخص کرد. مقدار پیش‌فرض .Qq Ic bounce Cm warn-interval No 4h است که یک هشدار منفرد را پس از چهار ساعت ارسال می‌کند. .It Ic ca Ar caname Cm cert Ar cafile پرونده گواهی مرجع صدور گواهی (CA) .Ar cafile را با مدخل ca به نام .Ar caname مرتبط کن. مدخل ca را می‌توان در قوانین .Cm listen on و .Cm action ... relay ارجاع داد. .It Ic filter Ar chain-name Ic chain Brq Ar filter-name Op , Ar ... یک زنجیره از فیلترها به نام .Ar chain-name شامل فیلترهای فهرست‌شده در .Ar filter-name ثبت کن. فیلترهای موجود در یک زنجیره فیلتر به ترتیب اعلان برای هر فازی که برای آن ثبت شده‌اند اجرا می‌شوند. می‌توان از یک زنجیره فیلتر به جای یک فیلتر برای هر دستورالعملی به جز خود زنجیره‌های فیلتر استفاده کرد. .It Ic filter Ar filter-name Ic phase Ar phase-name Ic match Ar conditions decision یک فیلتر به نام .Ar filter-name ثبت کن. تصمیمی .Ar decision درباره نحوه برخورد با ایمیل در فاز .Ar phase-name هنگام تطبیق شرایط .Ar conditions اتخاذ می‌شود. فازها، شرایط تطبیق و تصمیم‌ها در بخش .Sx MAIL FILTERING در زیر شرح داده شده‌اند. .It Ic filter Ar filter-name Ic proc Ar proc-name فیلتر .Qq proc به نام .Ar filter-name مبتنی بر فرایند .Ar proc-name را ثبت کن. .It Ic filter Ar filter-name Ic proc-exec Ar command فیلتر .Qq proc به نام .Ar filter-name را از دستور .Ar command مطابق با API .Xr smtpd-filters 7 ثبت و اجرا کن. اگر .Ar command با یک اسلش شروع شود با یک مسیر مطلق اجرا می‌شود، در غیر این صورت از .Dq /usr/lib/smtpd/opensmtpd اجرا خواهد شد. .It Ic include Qq Ar pathname این دستورالعمل را با محتوای پرونده پیکربندی اضافی در مسیر مطلق .Ar pathname جایگزین کن. .It Ic listen on Ar interface Oo Ar family Oc Op Ar options روی رابط شبکه .Ar interface برای اتصالات ورودی با استفاده از همان دستور زبان .Xr ifconfig 8 گوش بده. پارامتر رابط .Ar interface همچنین می‌تواند یک گروه رابط، یک نشانی IP یا یک نام دامنه باشد. گوش دادن را می‌توان به صورت اختیاری به یک خانواده نشانی خاص .Ar family محدود کرد که می‌تواند .Cm inet4 یا .Cm inet6 باشد. .Pp گزینه‌های .Ar options به شرح زیر هستند: .Bl -tag -width Ds .It Cm auth Op Pf < Ar authtable Ns > از SMTPAUTH پشتیبانی کن: کلاینت‌ها تنها پس از احراز هویت موفق می‌توانند تبادلات SMTP را آغاز کنند. کاربران یا در برابر مشخصات هویتی ورود عادی خود یا در برابر یک جدول مشخصات هویتی .Ar authtable احراز هویت می‌شوند که قالب آن در .Xr table 5 شرح داده شده است. .It Cm auth-optional Op Pf < Ar authtable Ns > از SMTPAUTH به صورت اختیاری پشتیبانی کن: کلاینت‌ها نیازی به احراز هویت ندارند، اما می‌توانند این کار را انجام دهند. این ویژگی به یک دستورالعمل .Ic listen on امکان می‌دهد تا هم ایمیل‌های ورودی را از فرستندگان غیرقابل اعتماد بپذیرد و هم به کاربران احراز هویت شده اجازه ارسال ایمیل خروجی را بدهد (با استفاده از .Cm match auth ) . این گزینه در شرایطی کاربرد دارد که امکان گوش دادن روی یک درگاه جداگانه (معمولاً درگاه submission، ۵۸۷) برای احراز هویت کاربران وجود ندارد. .It Ic ca Ar caname برای اتصالات امن، از گواهی CA مرتبط با .Ar caname (تعریف‌شده در دستورالعمل .Ic ca ) به عنوان گواهی CA هنگام اعتبارسنجی گواهی‌های کلاینت استفاده کن. .It Ic filter Ar name فیلتر .Ar name را روی اتصالات مدیریت‌شده توسط این شنونده اعمال کن. .It Cm hostname Ar hostname از .Ar hostname در بنر خوش‌آمدگویی به جای نام پیش‌فرض سرور استفاده کن. .It Cm hostnames Pf < Ar names Ns > نام سرور را برای نشانی‌های خاص بازنویسی کن. جدول .Ar names حاوی یک نگاشت از نشانی‌های IP به نام‌های میزبان است. اگر نشانی‌ای که اتصال روی آن وارد می‌شود در نگاشت ظاهر شود، نام میزبان مرتبط استفاده می‌شود. .It Cm mask-src قسمت .Sy from را هنگام افزودن سربرگ‌های .Dq Received حذف کن. .It Cm no-dsn پسوند DSN (اعلان وضعیت تحویل) را غیرفعال کن. .It Cm pki Ar pkiname برای اتصالات امن، از گواهی مرتبط با .Ar pkiname (تعریف‌شده در یک دستورالعمل .Ic pki ) برای اثبات هویت سرور ایمیل استفاده کن. این گزینه می‌تواند چندین بار برای ارائه گواهی‌های جایگزین برای SNI استفاده شود. .It Cm port Op Ar port به جای درگاه پیش‌فرض ۲۵، روی درگاه مشخص‌شده .Ar port گوش بده. .It Cm proxy-v2 از پروتکل PROXYv2 پشتیبانی کن و نشانی مبدا دریافت شده از پراکسی را به طور مناسب بازنویسی نما. .It Cm received-auth در سربرگ‌های .Dq Received ، گزارش بده که آیا نشست احراز هویت شده بود و توسط کدام کاربر محلی. .It Cm senders Pf < Ar users Ns > Op Cm masquerade کاربر احراز هویت شده را در جدول نگاشت .Ar users جستجو کن تا نشانی‌های ایمیلی را که آن کاربر مجاز به ارسال ایمیل با آن‌هاست بیابی. علاوه بر این، اگر گزینه .Cm masquerade ارائه شود، سربرگ From بازنویسی می‌شود تا با فرستنده ارائه‌شده در نشست SMTP مطابقت داشته باشد. .It Cm smtps Op Cm verify از SMTPS، به طور پیش‌فرض روی درگاه ۴۶۵، پشتیبانی کن. با گزینه .Cm tls ناسازگار و مانعة‌الجمع است. با گزینه .Cm verify ، کلاینت‌ها برای برقراری یک نشست SMTP باید یک گواهی معتبر نیز ارائه دهند. .It Cm tag Ar tag کلاینت‌هایی که به این شنونده متصل می‌شوند با برچسب مشخص‌شده .Ar tag علامت‌گذاری می‌شوند. .It Cm tls از STARTTLS، به طور پیش‌فرض روی درگاه ۲۵، پشتیبانی کن. با .Cm smtps ناسازگار و مانعة‌الجمع است. .It Cm tls-require Op Cm verify مشابه .Cm tls ، اما کلاینت‌ها را مجبور می‌کند پیش از شروع تبادل SMTP یک اتصال امن برقرار کنند. با گزینه .Cm verify ، کلاینت‌ها همچنین باید یک گواهی معتبر برای برقراری نشست SMTP ارائه دهند. .It Cm protocols Ar protostr نسخه‌های پروتکل مورد استفاده برای نشست‌های TLS را مشخص کن. برای قالب .Ar protostr به صفحه راهنمای .Xr tls_config_parse_protocols 3 مراجعه فرمایید. .It Cm ciphers Ar cipherstr فهرست رمزنگاره‌های مجاز برای نشست‌های TLS را مشخص کن. برای قالب .Ar cipherstr به صفحه راهنمای .Xr tls_config_set_ciphers 3 مراجعه فرمایید. .El .It Ic listen on Cm socket Op Ar options برای اتصالات ورودی SMTP روی سوکت دامنه یونیکس .Pa /run/smtpd.sock گوش بده. این کار حتی در صورت عدم درج دستورالعمل، به طور پیش‌فرض انجام می‌شود. .Pp گزینه‌های .Ar options به شرح زیر هستند: .Bl -tag -width Ds .It Ic filter Ar name فیلتر .Ar name را روی اتصالات مدیریت‌شده توسط این شنونده اعمال کن. .It Cm mask-src قسمت .Sy from را هنگام افزودن سربرگ‌های .Dq Received حذف کن. .It Cm no-dsn پسوند DSN (اعلان وضعیت تحویل) را غیرفعال کن. .It Cm tag Ar tag کلاینت‌های متصل به شنونده با برچسب مشخص‌شده .Ar tag علامت‌گذاری می‌شوند. .El .It Ic match Ar options Cm action Ar name اگر حداقل یک پاکت ایمیل با گزینه‌های .Ar options یک دستورالعمل .Ic match Cm action مطابقت داشته باشد، پیام ورودی را دریافت کن، یک رونوشت در هر پاکت تطبیق‌یافته قرار بده و پاکت‌ها را به صورت اتمیک در صف ایمیل ذخیره کن تا بعداً توسط توزیع‌کننده مربوطه .Ar name (که باید از قبل با دستورالعمل .Ic action تعریف شده باشد) پردازش شوند. .Pp گزینه‌های تطبیق زیر پشتیبانی می‌شوند و همگی قابلیت منفی شدن (با استفاده از علامت !) دارند: .Bl -tag -width Ds .It Xo .Op Ic \&! .Cm for any .Xc مشخص می‌کند که نشست می‌تواند هر مقصدی را مخاطب قرار دهد. .It Xo .Op Ic \&! .Cm for local .Xc مشخص می‌کند که نشست می‌تواند هر دامنه محلی را مخاطب قرار دهد. این حالت پیش‌فرض است و می‌توان آن را حذف کرد. .It Xo .Op Ic \&! .Cm for domain Oo Cm regex Oc .Ar domain | Pf < Ar domain Ns > .Xc مشخص می‌کند که نشست می‌تواند رشته یا جدول فهرست .Ar domain را مخاطب قرار دهد. کلیدواژه .Cm regex در صورتی لازم است که .Ar domain یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm for rcpt-to Oo Cm regex Oc .Ar recipient | Pf < Ar recipient Ns > .Xc مشخص می‌کند که نشست می‌تواند رشته یا جدول فهرست .Ar recipient را مخاطب قرار دهد. کلیدواژه .Cm regex در صورتی لازم است که .Ar recipient یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm from any .Xc مشخص می‌کند که نشست می‌تواند از هر مبدایی سرچشمه بگیرد. .It Xo .Op Ic \&! .Cm from auth .Xc مشخص می‌کند که نشست می‌تواند از هر کاربر احراز هویت شده‌ای، بدون در نظر گرفتن نشانی IP مبدا، سرچشمه بگیرد. .It Xo .Op Ic \&! .Cm from auth Oo Cm regex Oc .Ar user | Pf < Ar user Ns > .Xc مشخص می‌کند که نشست می‌تواند از کاربر احراز هویت شده یا فهرست کاربران .Ar user ، بدون در نظر گرفتن نشانی IP مبدا، سرچشمه بگیرد. کلیدواژه .Cm regex در صورتی لازم است که .Ar user یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm from local .Xc مشخص می‌کند که نشست تنها می‌تواند از یک نشانی IP محلی یا از ثبت‌کننده محلی (local enqueuer) سرچشمه بگیرد. این حالت پیش‌فرض است و می‌توان آن را حذف کرد. .It Xo .Op Ic \&! .Cm from mail-from Oo Cm regex Oc .Ar sender | Pf < Ar sender Ns > .Xc مشخص می‌کند که نشست می‌تواند از فرستنده یا فهرست فرستندگان .Ar sender ، بدون در نظر گرفتن نشانی IP مبدا، سرچشمه بگیرد. کلیدواژه .Cm regex در صورتی لازم است که .Ar sender یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm from rdns .Xc مشخص می‌کند که نشست تنها می‌تواند از یک نشانی IP سرچشمه بگیرد که به یک reverse DNS تفکیک شود. .It Xo .Op Ic \&! .Cm from rdns Oo Cm regex Oc .Ar hostname | Pf < Ar hostname Ns > .Xc مشخص می‌کند که نشست تنها می‌تواند از یک نشانی IP سرچشمه بگیرد که به یک reverse DNS منطبق با رشته یا رشته فهرست .Ar hostname تفکیک شود. کلیدواژه .Cm regex در صورتی لازم است که .Ar hostname یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm from socket .Xc مشخص می‌کند که نشست تنها می‌تواند از ثبت‌کننده محلی در صف سرچشمه بگیرد. .It Xo .Op Ic \&! .Cm from src Oo Cm regex Oc .Ar address | Pf < Ar address Ns > .Xc مشخص می‌کند که نشست تنها می‌تواند از رشته یا جدول فهرست .Ar address سرچشمه بگیرد که می‌تواند یک نشانی مشخص یا یک زیرشبکه در قالب نشانه‌گذاری CIDR باشد. کلیدواژه .Cm regex در صورتی لازم است که .Ar address یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .El .Pp علاوه بر این، گزینه‌های تبادل زیر نیز می‌توانند تطبیق داده شوند: .Bl -tag -width Ds .It Xo .Op Ic \&! .Cm auth .Xc تبادلاتی را که احراز هویت شده‌اند تطبیق می‌دهد. .It Xo .Op Ic \&! .Cm auth Oo Cm regex Oc .Ar username | Pf < Ar username Ns > .Xc تبادلاتی را که برای کاربر یا فهرست کاربران .Ar username احراز هویت شده‌اند تطبیق می‌دهد. کلیدواژه .Cm regex در صورتی لازم است که .Ar username یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm helo Oo Cm regex Oc .Ar helo-name | Pf < Ar helo-name Ns > .Xc مشخص می‌کند که HELO / EHLO نشست باید با رشته یا جدول فهرست .Ar helo-name مطابقت داشته باشد. کلیدواژه .Cm regex در صورتی لازم است که .Ar helo-name یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm mail-from Oo Cm regex Oc .Ar sender | Pf < Ar sender Ns > .Xc مشخص می‌کند که MAIL FROM تبادل باید با رشته یا جدول فهرست .Ar sender مطابقت داشته باشد. کلیدواژه .Cm regex در صورتی لازم است که .Ar sender یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm rcpt-to Oo Cm regex Oc .Ar recipient | Pf < Ar recipient Ns > .Xc مشخص می‌کند که RCPT TO تبادل باید با رشته یا جدول فهرست .Ar recipient مطابقت داشته باشد. کلیدواژه .Cm regex در صورتی لازم است که .Ar recipient یک عبارت باقاعده یا جدولی از عبارات باقاعده باشد. .It Xo .Op Ic \&! .Cm tag Oo Cm regex Oc Ar tag .Xc تبادلات علامت‌گذاری‌شده با برچسب مشخص‌شده .Ar tag را تطبیق می‌دهد. کلیدواژه .Cm regex در صورتی لازم است که .Ar tag یک عبارت باقاعده باشد. .It Xo .Op Ic \&! .Cm tls .Xc مشخص می‌کند که تبادل باید در یک کانال TLS انجام گیرد. .El .It Ic match Ar options Cm reject پیام ورودی را در طول گفتگوی SMTP رد کن. همان گزینه‌های .Ar options که برای دستورالعمل .Ic match Cm action پشتیبانی می‌شوند، در اینجا نیز معتبر هستند. .It Ic mda Cm wrapper Ar name command دستور .Ar command را با بسته‌بندی تحویل‌دهنده ایمیل به نام .Ar name مرتبط کن. هنگامی که یک تحویل محلی یک بسته‌بندی را مشخص می‌کند، به جای آن .Ar command مرتبط با بسته‌بندی اجرا خواهد شد. این دستور می‌تواند حاوی مشخص‌کننده‌های قالب باشد .Pq نگاه کنید به Sx FORMAT SPECIFIERS . .It Ic mta Cm max-deferred Ar number هنگامی که تحویل به یک میزبان معین به دلیل خطاهای موقت معلق می‌شود، حداکثر .Ar number پاکت را برای آن میزبان ذخیره (کش) کن تا به محض موفقیت‌آمیز بودن تحویل دیگری به آن میزبان، بتوان آنها را تحویل داد. مقدار پیش‌فرض ۱۰۰ است. .It Ic pki Ar pkiname Cm cert Ar certfile پرونده گواهی .Ar certfile را با مدخل pki به نام .Ar pkiname مرتبط کن. مدخل pki پیکربندی یک جفت‌کلید را تعریف می‌کند که می‌توان در قوانین شنونده و اقدامات بازپخش به آن ارجاع داد. .Pp می‌توان با افزودن یک یا چند گواهی، از جمله گواهی مرجع صدور گواهی (CA)، به .Ar certfile یک زنجیره گواهی ایجاد کرد. ایجاد گواهی‌ها در .Xr starttls 8 مستند شده است. .It Ic pki Ar pkiname Cm key Ar keyfile کلید واقع در .Ar keyfile را با مدخل pki به نام .Ar pkiname مرتبط کن. .It Ic pki Ar pkiname Cm dhe Ar params پارامترهای DHE را برای استفاده در مجموعه‌های رمزنگاری DHE با مدخل pki به نام .Ar pkiname مشخص کن. مقادیر معتبر پارامتر عبارتند از .Cm none , .Cm legacy , و .Cm auto . برای .Cm legacy ، یک طول کلید ثابت ۱۰۲۴ بیتی استفاده می‌شود، در حالی که برای .Cm auto ، طول کلید به صورت خودکار تعیین می‌گردد. مقدار پیش‌فرض .Cm none است که مجموعه‌های رمزنگاری DHE را غیرفعال می‌کند. .It Ic proc Ar proc-name Ar command یک فرایند خارجی به نام .Ar proc-name را از دستور .Ar command مطابق با API .Xr smtpd-filters 7 ثبت کن. از چنین فرایندهایی می‌توان برای به اشتراک گذاشتن یک نمونه واحد بین چندین فیلتر استفاده کرد. اگر .Ar command با یک اسلش آغاز شود با یک مسیر مطلق اجرا می‌شود، در غیر این صورت از .Dq /usr/lib/smtpd/opensmtpd اجرا خواهد شد. .It Ic queue Cm compression پرونده‌های صف را در قالبی فشرده ذخیره کن. این کار برای صرفه‌جویی در فضای دیسک مفید است. .It Ic queue Cm encryption Op Ar key پرونده‌های صف را با .Xr EVP_aes_256_gcm 3 رمزگذاری کن. اگر هیچ کلیدی .Ar key مشخص نشده باشد، با .Xr getpass 3 خوانده می‌شود. اگر به جای یک .Ar key ، رشته .Cm stdin یا یک خط تیره منفرد .Pq Ql - داده شود، کلید از ورودی استاندارد خوانده می‌شود. .It Ic queue Cm ttl Ar delay زمان انقضای پیش‌فرض را برای پیام‌هایی که به طور موقت غیرقابل تحویل هستند تنظیم کن، که به صورت یک عدد صحیح مثبت دهدهی به همراه یک واحد .Cm s , m , h , یا .Cm d داده می‌شود. مقدار پیش‌فرض چهار روز .Pq 4d است. .It Ic smtp Cm ciphers Ar control رشته کنترلی .Ar control را برای .Xr SSL_CTX_set_cipher_list 3 تنظیم کن. مقدار پیش‌فرض .Qq HIGH:!aNULL:!MD5 است. .It Ic smtp limit Cm max-mails Ar count تعداد پیام‌ها را برای هر نشست به .Ar count محدود کن. مقدار پیش‌فرض ۱۰۰ است. .It Ic smtp limit Cm max-rcpt Ar count تعداد گیرندگان را برای هر تبادل به .Ar count محدود کن. مقدار پیش‌فرض ۱۰۰۰ است. .It Ic smtp Cm max-message-size Ar size پیام‌های بزرگتر از .Ar size را رد کن، که به صورت یک عدد مثبت از بایت‌ها یا به عنوان رشته‌ای که با .Xr scan_scaled 3 تجزیه می‌شود مشخص می‌گردد. مقدار پیش‌فرض .Qq 35M است. .It Ic smtp Cm sub-addr-delim Ar character هنگام تفکیک بخش محلی نشانی ایمیل محلی، کاراکتر اسکی .Ar character و تمام کاراکترهای پس از آن را نادیده بگیر. مقدار پیش‌فرض .Ql + است. .It Ic srs Cm key Oo Cm backup Oc Ar secret کلید مخفی مورد استفاده برای SRS (طرح بازنویسی فرستنده) را تنظیم کن. گزینه .Cm backup را می‌توان برای تنظیم یک کلید مخفی جهت استفاده به عنوان جایگزین اضطراری برای SRS مشخص کرد؛ از این قابلیت می‌توان برای پیاده‌سازی چرخش کلیدهای SRS استفاده نمود. .It Ic srs Cm ttl Ar delay مدت‌زمان اعتبار (TTL) را برای پاکت‌های SRS تنظیم کن. پس از این تاخیر، پاسخ بازگشتی (bounce) به نشانی SRS دور انداخته می‌شود تا خطرات نشانی‌های جعل‌شده کاهش یابد. مقدار پیش‌فرض چهار روز .Pq 4d است. .It Ic table Ar name Oo Ar type : Oc Ns Ar pathname جدول‌ها اطلاعات پیکربندی اضافی را برای .Xr smtpd 8 در قالب فهرست‌ها یا نگاشت‌های کلید-مقدار فراهم می‌کنند. قالب مدخل‌ها بستگی به کاربرد جدول دارد. برای مستندات جامع به .Xr table 5 مراجعه فرمایید. .Pp هر جدول با یک نام دلخواه و یکتا .Ar name مشخص می‌شود. .Pp اگر نوع .Ar type برابر .Cm db باشد، اطلاعات در پرونده‌ای که با .Xr makemap 8 ساخته شده ذخیره می‌شود؛ اگر .Cm file یا حذف شده باشد، اطلاعات در یک پرونده متن ساده با قالبی که در .Xr table 5 شرح داده شده ذخیره می‌گردد. مسیر .Ar pathname به پرونده باید مطلق باشد. .It Ic table Ar name Brq Ar value Op , Ar ... به جای استفاده از یک پرونده جداگانه، یک جدول فهرست حاوی مقادیر ایستای .Ar value Ns s داده‌شده تعریف کن. جدول باید حداقل شامل یک مقدار باشد و می‌تواند چندین مقدار را به صورت فهرستی جداشده با کاما (فاصله اختیاری است) اعلان کند. .It Ic table Ar name Brq Ar key Ns = Ns Ar value Op , Ar ... به جای استفاده از یک پرونده جداگانه، یک جدول نگاشت حاوی جفت‌های ایستای .Ar key Ns - Ns Ar value داده‌شده تعریف کن. جدول باید حداقل شامل یک جفت کلید-مقدار باشد و می‌تواند چندین جفت را به صورت فهرستی جداشده با کاما (فاصله اختیاری است) اعلان کند. .El .Ss "فیلتر کردن ایمیل (MAIL FILTERING)" در یک گردش کار معمولی، .Xr smtpd 8 ممکن است پیامی را تنها بر اساس محتوای پاکت‌ها بپذیرد یا رد کند. تصمیم‌های آن درباره نحوه مدیریت پیام است، نه درباره مدیریت یک نشست فعال. .Pp فیلتر کردن فرآیند تصمیم‌گیری را با مجاز ساختن .Xr smtpd 8 به توقف در هر فاز از یک نشست SMTP، بررسی برقراری شرایط، و سپس تصمیم‌گیری درباره اینکه آیا نشست اجازه پیشروی دارد یا خیر، گسترش می‌دهد. .Pp با فیلتر کردن، یک نشست می‌تواند در هر فازی پیش از کامل شدن یک پاکت متوقف شود. همچنین یک پیام می‌تواند پس از ثبت شدن رد شود، صرف‌نظر از اینکه پاکت پذیرفته شده بود یا خیر. .Pp فازهای زیر در حال حاضر پشتیبانی می‌شوند: .Bl -column mail-from -offset indent .It connect Ta هنگام اتصال، پیش از نمایش بنر .It helo Ta پس از ارسال دستور HELO .It ehlo Ta پس از ارسال دستور EHLO .It mail-from Ta پس از ارسال دستور MAIL FROM .It rcpt-to Ta پس از ارسال دستور RCPT TO .It data Ta پس از ارسال دستور DATA .It commit Ta پس از ثبت کامل پیام .El .Pp در هر فاز، شرایط مختلفی را می‌توان تطبیق داد. داده‌های fcrdns، rdns و src در تمامی فازها در دسترس هستند، اما داده‌های دیگر باید قبلاً ارسال شده باشند تا در دسترس قرار گیرند. .Bl -column XXXXXXXXXXXXXXXXXXXXX -offset indent .It fcrdns Ta سامانه DNS معکوس تاییدشده مستقیم معتبر است .It rdns Ta نشست دارای یک DNS معکوس است .It rdns Pf < Ar table Ns > Ta نشست دارای DNS معکوس در جدول است .It src Pf < Ar table Ns > Ta نشانی مبدا در جدول موجود است .It helo Pf < Ar table Ns > Ta نام helo در جدول موجود است .It auth Ta نشست احراز هویت شده است .It auth Pf < Ar table Ns > Ta نام کاربری نشست در جدول موجود است .It mail-from Pf < Ar table Ns > Ta نشانی فرستنده در جدول موجود است .It rcpt-to Pf < Ar table Ns > Ta نشانی گیرنده در جدول موجود است .El .Pp این شرایط را می‌توان با افزودن علامت تعجب به ابتدای آنها منفی کرد: .Bl -column XXXXXXXXXXXXXXXXXXXXX -offset indent .It !fcrdns Ta سامانه DNS معکوس تاییدشده مستقیم نامعتبر است .El .Pp هر شرطی که از یک جدول استفاده می‌کند می‌تواند با افزودن کلیدواژه regex به ابتدای نام جدول مشخص کند که جدول حاوی عبارات باقاعده است. .Bl -column XXXXXXXXXXXXXXXXXXXXX -offset indent .It helo regex Pf < Ar table Ns > Ta نام helo با یک regex در جدول مطابقت دارد .El .Pp در نهایت، تعدادی تصمیم را می‌توان اتخاذ کرد: .Bl -column XXXXXXXXXXXXXXXXXXXXX -offset indent .It bypass Ta نشست یا تبادل از فیلترها گذر می‌کند .It disconnect Ar message Ta اتصال نشست همراه با پیام قطع می‌شود .It junk Ta نشست یا تبادل به عنوان هرزنامه علامت‌گذاری می‌شود، یعنی یک سربرگ .Ql X-Spam: yes به پیام‌ها اضافه می‌شود .It reject Ar message Ta دستور همراه با پیام رد می‌شود .It rewrite Ar value Ta پارامتر دستور با مقدار بازنویسی می‌شود .El .Pp تصمیماتی که شامل یک پیام هستند مستلزم آنند که پیام طبق استانداردهای RFC معتبر باشد، به این معنی که باید با یک کد وضعیت 4xx یا 5xx شروع شوند. تصمیم‌ها را می‌توان در هر فازی اتخاذ کرد، اگرچه علامت‌گذاری به عنوان هرزنامه (junk) تنها پیش از ثبت نهایی پیام می‌تواند رخ دهد. .Ss "مشخص‌کننده‌های قالب (FORMAT SPECIFIERS)" برخی از دستورالعمل‌های پیکربندی از بسط پارامترهای خود در زمان اجرا پشتیبانی می‌کنند. چنین دستورالعمل‌هایی (برای نمونه .Ic action Cm maildir , .Ic action Cm mda ) می‌توانند از مشخص‌کننده‌های قالبی استفاده کنند که پیش از تحویل یا بازپخش بسط می‌یابند. قالب‌های زیر در حال حاضر پشتیبانی می‌شوند: .Bl -column %{user.directory} -offset indent .It %{sender} Ta نشانی ایمیل فرستنده، ممکن است رشته خالی باشد .It %{sender.user} Ta بخش کاربری نشانی ایمیل فرستنده، ممکن است خالی باشد .It %{sender.domain} Ta بخش دامنه نشانی ایمیل فرستنده، ممکن است خالی باشد .It %{rcpt} Ta نشانی ایمیل گیرنده .It %{rcpt.user} Ta بخش کاربری نشانی ایمیل گیرنده .It %{rcpt.domain} Ta بخش دامنه نشانی ایمیل گیرنده .It %{dest} Ta نشانی ایمیل گیرنده پس از بسط .It %{dest.user} Ta بخش کاربری پس از بسط .It %{dest.domain} Ta بخش دامنه پس از بسط .It %{user.username} Ta کاربر محلی .It %{user.directory} Ta دایرکتوری خانگی کاربر محلی .It %{mbox.from} Ta نام مورد استفاده در خطوط جداکننده From در mbox .It %{mda} Ta دستور mda، تنها برای بسته‌بندی‌های mda در دسترس است .El .Pp قالب‌های بسط همچنین از بسط جزئی با استفاده از نشانه‌گذاری اختیاری براکت با آفست زیررشته پشتیبانی می‌کنند. برای نمونه، با دامنه گیرنده .Dq example.org : .Bl -column %{rcpt.domain[0:-4]} -offset indent .It %{rcpt.domain[0]} Ta به Dq e بسط می‌یابد .It %{rcpt.domain[1]} Ta به Dq x بسط می‌یابد .It %{rcpt.domain[8:]} Ta به Dq org بسط می‌یابد .It %{rcpt.domain[-3:]} Ta به Dq org بسط می‌یابد .It %{rcpt.domain[0:6]} Ta به Dq example بسط می‌یابد .It %{rcpt.domain[0:-4]} Ta به Dq example بسط می‌یابد .El .Pp علاوه بر این، اصلاح‌کننده‌ها می‌توانند روی توکن اعمال شوند. برای نمونه، با گیرنده .Dq User+Tag@Example.org : .Bl -column %{rcpt:lowercase|strip} -offset indent .It %{rcpt:lowercase} Ta به Dq user+tag@example.org بسط می‌یابد .It %{rcpt:uppercase} Ta به Dq USER+TAG@EXAMPLE.ORG بسط می‌یابد .It %{rcpt:strip} Ta به Dq User@Example.org بسط می‌یابد .It %{rcpt:lowercase|strip} Ta به Dq user@example.org بسط می‌یابد .El .Pp به دلایل امنیتی، مقادیر بسط‌یافته پالایش می‌شوند و نویسه‌های بالقوه خطرناک با .Sq \&: جایگزین می‌گردند. در شرایطی که حضور آنها مطلوب باشد، می‌توان اصلاح‌کننده .Dq raw را اعمال کرد. برای نمونه، با گیرنده .Dq user+t?g@example.org : .Bl -column %{rcpt:raw} -offset indent .It %{rcpt} Ta به Dq user+t:g@example.org بسط می‌یابد .It %{rcpt:raw} Ta به Dq user+t?g@example.org بسط می‌یابد .El .Ss "دستورات تحویل‌دهنده ایمیل (MDA COMMANDS)" هنگامی که روش تحویل یک اقدام .Cm mda باشد، .Xr smtpd 8 دستور مرتبط را برای تحویل اجرا می‌کند در حالی که محتوای ایمیل از طریق ورودی استاندارد ارائه می‌شود. انتظار می‌رود که دستور تمام محتوای ایمیل را بخواند. .Pp کد خروج دستور نتیجه تحویل را گزارش می‌دهد: وضعیت 0 .Pq Dv EX_OK تحویل موفقیت‌آمیز است؛ وضعیت‌های 71 .Pq Dv EX_OSERR و 75 .Pq Dv EX_TEMPFAIL شکست‌های موقت هستند؛ و تمام کدهای خروج دیگر به عنوان شکست دائمی در نظر گرفته می‌شوند. .Pp متغیرهای محیطی زیر تنظیم می‌شوند: .Pp .Bl -tag -width ORIGINAL_RECIPIENT -compact .It Ev DOMAIN دامنه گیرنده. .It Ev EXTENSION زیرنشانی گیرنده (ممکن است تنظیم نشده باشد). .It Ev HOME دایرکتوری ورود کاربر تحویل. .It Ev LOCAL بخش محلی نشانی کاربر گیرنده. .It Ev LOGNAME نام ورود کاربر. .It Ev ORIGINAL_RECIPIENT نشانی گیرنده اصلی. .It Ev PATH تنظیم‌شده روی .Ev _PATH_DEFPATH . به طور سنتی .Pa /usr/bin:/bin ، اما بسط‌یافته برای دربرگیری .Pa /usr/sbin ، .Pa /sbin ، .Pa /usr/X11R6/bin ، .Pa /usr/local/bin ، و .Pa /usr/local/sbin در .Ox . .It Ev RECIPIENT نشانی گیرنده نهایی. .It Ev SENDER نشانی فرستنده (ممکن است خالی باشد). .It Ev SHELL تنظیم‌شده روی .Pa /bin/sh . .It Ev USER مترادف .Ev LOGNAME برای سازگاری با گذشته. .El .Sh "فایل‌ها (FILES)" .Bl -tag -width "/etc/smtpd/smtpd.confXXX" -compact .It Pa /etc/smtpd/smtpd.conf پرونده پیکربندی پیش‌فرض .Xr smtpd 8 . .It Pa /etc/smtpd/mailname اگر این پرونده وجود داشته باشد، خط اول به عنوان نام سرور استفاده می‌شود. در غیر این صورت، نام سرور از نام میزبان محلی بازگردانده‌شده توسط .Xr gethostname 3 گرفته می‌شود؛ یا مستقیماً اگر یک نام دامنه کاملاً واجد شرایط باشد، یا با بازیابی نام متعارف مرتبط از طریق .Xr getaddrinfo 3 . .It Pa /run/smtpd.sock سوکت دامنه یونیکس برای اتصالات ورودی SMTP. .It Pa /var/spool/smtpd/ دایرکتوری‌های صف برای ایمیل‌ها در حین پردازش. .El .Sh "مثال‌ها (EXAMPLES)" پرونده پیش‌فرض .Nm که همراه با .Ox عرضه می‌شود، روی رابط شبکه loopback .Pq Pa lo0 گوش می‌دهد و امکان دریافت ایمیل از کاربران و دیمن‌های روی ماشین محلی را فراهم می‌سازد، و همچنین اجازه ارسال ایمیل به سرورهای راه دور را می‌دهد. چندین پیکربندی پیچیده‌تر در زیر ارائه شده است. .Pp این مثال اول مشابه پیکربندی پیش‌فرض است، اما تمام ایمیل‌های خروجی به یک سرور SMTP راه دور بازپخش می‌شوند. یک پرونده اطلاعات محرمانه (secrets) برای تعیین نام کاربری و گذرواژه مورد نیاز است: .Bd -literal -offset indent # touch /etc/smtpd/secrets # chmod 640 /etc/smtpd/secrets # chown root:smtpd /etc/smtpd/secrets # echo "bob username:password" > /etc/smtpd/secrets .Ed .Pp پرونده .Nm به این صورت خواهد بود: .Bd -literal -offset indent table aliases file:/etc/smtpd/aliases table secrets file:/etc/smtpd/secrets listen on lo0 action "local_mail" mbox alias action "outbound" relay host smtp+tls://bob@smtp.example.com \e auth match from local for local action "local_mail" match from local for any action "outbound" .Ed .Pp در این مثال دوم، هدف این است که تحویل و بازپخش ایمیل تنها برای کاربرانی مجاز باشد که می‌توانند احراز هویت کنند (با استفاده از مشخصات ورود عادی خود). یک گواهی RSA باید برای اثبات هویت سرور ارائه شود. سرور ایمیل روی تمام رابط‌هایی که مسیرهای پیش‌فرض به آنها اشاره دارند گوش می‌دهد. ایمیل با مقصد محلی به یک MDA خارجی ارسال می‌شود. نخست، گواهی RSA ایجاد می‌شود: .Bd -literal -offset indent # openssl genrsa \-out /etc/ssl/private/mail.example.com.key 4096 # openssl req \-new \-x509 \-key /etc/ssl/private/mail.example.com.key \e \-out /etc/ssl/mail.example.com.crt \-days 365 # chmod 600 /etc/ssl/mail.example.com.crt # chmod 600 /etc/ssl/private/mail.example.com.key .Ed .Pp در مثال بالا، یک گواهی با اعتبار یک سال ایجاد شد. پرونده پیکربندی به این صورت خواهد بود: .Bd -literal -offset indent pki mail.example.com cert "/etc/ssl/mail.example.com.crt" pki mail.example.com key "/etc/ssl/private/mail.example.com.key" table aliases file:/etc/smtpd/aliases listen on lo0 listen on egress tls pki mail.example.com auth action mda_with_aliases mda "/path/to/mda \-f \-" alias action mda_without_aliases mda "/path/to/mda \-f \-" action "outbound" relay match for local action mda_with_aliases match from any for domain example.com action mda_without_aliases match for any action "outbound" match auth from any for any action "outbound" .Ed .Pp برای سایت‌هایی که مایل به امضای پیام‌ها با استفاده از DKIM هستند، مثال زیر از .Sy opensmtpd-filter-dkimsign برای امضای DKIM استفاده می‌کند: .Bd -literal -offset indent table aliases file:/etc/smtpd/aliases filter "dkimsign" proc-exec "filter-dkimsign -d -s \e -k /etc/smtpd/dkim/private.key" user _dkimsign group _dkimsign listen on socket filter "dkimsign" listen on lo0 filter "dkimsign" action "local_mail" mbox alias action "outbound" relay match for local action "local_mail" match for any action "outbound" .Ed .Pp روش دیگر این است که بسته .Sy opensmtpd-filter-rspamd می‌تواند برای یکپارچه‌سازی با .Sy rspamd استفاده شود؛ یک دیمن شخص ثالث که چندین ویژگی ضد هرزنامه و همچنین امضای DKIM را ارائه می‌دهد. علاوه بر پیکربندی خود .Sy rspamd ، این کار مستلزم استفاده از کلیدواژه .Cm proc-exec است: .Bd -literal -offset indent filter "rspamd" proc-exec "filter-rspamd" .Ed .Pp سایت‌هایی که پیام‌های غیرمحلی را می‌پذیرند ممکن است بتوانند با رد پیام‌های جعلی که ادعا می‌کنند از دامنه محلی هستند، حجم هرزنامه‌های دریافتی را کاهش دهند. مثال زیر از یک جدول فهرست .Em other-relays برای تعیین نشانی‌های IP بازپخش‌هایی استفاده می‌کند که ممکن است به طور قانونی ایمیلی با دامنه مالک به عنوان فرستنده ارسال کنند. .Bd -literal -offset indent table aliases file:/etc/smtpd/aliases table other-relays file:/etc/smtpd/other-relays listen on lo0 listen on egress action "local_mail" mbox alias action "outbound" relay match for local action "local_mail" match for any action "outbound" match !from src mail\-from "@example.com" for any \e reject match from any for domain example.com action "local_mail" .Ed .Sh "همچنین ببینید (SEE ALSO)" .Xr mailer.conf 5 , .Xr table 5 , .Xr smtpd-filters 7 , .Xr makemap 8 , .Xr smtpd 8 .Sh "تاریخچه (HISTORY)" دیمن .Xr smtpd 8 نخستین بار در .Ox 4.6 ظاهر شد.