GIT-IMAP-SEND(1) دستورات عمومی کاربر GIT-IMAP-SEND(1) نام (NAME) git-imap-send - ارسال مجموعه‌ای از وصله‌ها از ورودی استاندارد به یک پوشه IMAP خلاصه دستور (SYNOPSIS) git imap-send [-v] [-q] [--[no-]curl] [(--folder|-f) ] git imap-send --list توضیحات (DESCRIPTION) این دستور یک صندوق پستی (mailbox) تولیدشده با git format-patch را در پوشه پیش‌نویس‌های (drafts) یک سرور IMAP بارگذاری می‌کند. این کار اجازه می‌دهد تا هنگام استفاده از کلاینت‌های ایمیلی که نمی‌توانند مستقیماً فایل‌های صندوق پستی را بخوانند، وصله‌ها مانند ایمیل‌های دیگر ارسال شوند. این دستور همچنین با هر صندوق پستی عمومی که ایمیل‌های آن به ترتیب دارای فیلدهای From، Date و Subject باشند کار می‌کند. استفاده متداول معمولاً چیزی شبیه به این است: $ git format-patch --signoff --stdout --attach origin | git imap-send گزینه‌ها (OPTIONS) -v, --verbose نمایش جزئیات کامل خروجی (پرگویی). -q, --quiet حالت بی‌صدا و عدم نمایش پیام‌های غیرضروری. -f , --folder= مشخص کردن پوشه‌ای که ایمیل‌ها باید در آن ذخیره شوند. برای مثال: --folder=[Gmail]/Drafts یا -f INBOX/Drafts. --curl استفاده از libcurl برای برقراری ارتباط با سرور IMAP، مگر اینکه از طریق تونل به آن متصل شوید. اگر گیت بدون فعال بودن گزینه USE_CURL_FOR_IMAP_SEND کامپایل شده باشد، نادیده گرفته می‌شود. --no-curl برقراری ارتباط با سرور IMAP با استفاده از روال‌های داخلی IMAP خود گیت به‌جای libcurl. اگر گیت با گزینه NO_OPENSSL کامپایل شده باشد، نادیده گرفته می‌شود. --list اجرای دستور LIST در پروتکل IMAP برای خروجی دادن فهرستی از تمام پوشه‌های موجود. پیکربندی (CONFIGURATION) برای استفاده از این ابزار، باید imap.folder و یکی از گزینه‌های imap.tunnel یا imap.host روی مقادیر مناسب تنظیم شده باشند. تمام موارد بالای این خط در این بخش از مستندات git-config(1) گنجانده نشده است. محتوایی که در ادامه می‌آید همان چیزی است که در آنجا یافت می‌شود: imap.folder پوشه‌ای که ایمیل‌ها باید در آن قرار گیرند، که معمولاً پوشه Drafts است. برای مثال: INBOX.Drafts، INBOX/Drafts یا [Gmail]/Drafts. پوشه IMAP برای تعامل الزامی است و باید مشخص شود؛ مقدار این متغیر پیکربندی به عنوان مقدار پیش‌فرض جایگزین در زمانی که گزینه --folder داده نشده باشد، استفاده می‌شود. imap.tunnel دستوری که برای ایجاد تونل به سرور IMAP استفاده می‌شود و دستورات به‌جای اتصال مستقیم شبکه‌ای به سرور، از طریق آن هدایت (pipe) می‌شوند. در صورتی که imap.host تنظیم نشده باشد، الزامی است. imap.host نشانی اینترنتی (URL) مشخص‌کننده سرور. از پیشوند imap:// برای اتصالات غیرامن و از پیشوند imaps:// برای اتصالات امن استفاده کنید. در صورت تنظیم بودن imap.tunnel نادیده گرفته می‌شود، اما در غیر این صورت الزامی است. imap.user نام کاربری برای ورود به سرور. imap.pass رمز عبور برای ورود به سرور. imap.port یک عدد پورت صحیح برای اتصال به سرور. مقدار پیش‌فرض برای میزبان‌های imap:// برابر با 143 و برای میزبان‌های imaps:// برابر با 993 است. در صورت تنظیم بودن imap.tunnel نادیده گرفته می‌شود. imap.sslverify یک مقدار بولی برای فعال/غیرفعال کردن اعتبارسنجی گواهی سرور مورداستفاده در اتصال SSL/TLS. مقدار پیش‌فرض true است. در صورت تنظیم بودن imap.tunnel نادیده گرفته می‌شود. imap.preformattedHTML یک مقدار بولی برای فعال/غیرفعال کردن استفاده از کدگذاری HTML هنگام ارسال وصله. وصله با کدگذاری HTML درون تگ‌های
 قرار می‌گیرد و نوع
           محتوای آن text/html خواهد بود. از قضا فعال کردن این گزینه باعث
           می‌شود Thunderbird وصله را به صورت یک ایمیل plain/text با
           format=fixed ارسال کند. مقدار پیش‌فرض false است.

       imap.authMethod
           مشخص کردن روش احراز هویت با سرور IMAP. اگر گیت با گزینه NO_CURL
           کامپایل شده باشد، یا نسخه curl شما قدیمی‌تر از 7.34.0 باشد، یا
           git-imap-send را با گزینه --no-curl اجرا می‌کنید، تنها روش‌های
           پشتیبانی‌شده عبارتند از PLAIN، CRAM-MD5، OAUTHBEARER و XOAUTH2.  اگر
           این گزینه تنظیم نشده باشد، git imap-send از دستور اولیه و متن‌ساده
           IMAP یعنی LOGIN استفاده می‌کند.

دریافت فهرست پوشه‌های در دسترس (GETTING A LIST OF AVAILABLE FOLDERS)
       برای ارسال ایمیل به یک پوشه خاص، باید نام صحیح پوشه مورد نظر را در
       صندوق پستی خود بدانید. نام‌هایی مانند "Junk"، "Trash" و غیره که توسط
       کلاینت‌های ایمیل مختلف نمایش داده می‌شوند، لزوماً نام‌های واقعی پوشه‌های
       ذخیره‌شده در سرور ارائه‌دهنده ایمیل شما نیستند.

       به منظور دریافت نام صحیح پوشه برای استفاده با git imap-send، می‌توانید
       دستور git imap-send --list را اجرا کنید. این کار فهرستی از نام‌های معتبر
       پوشه‌ها را نمایش می‌دهد. یک نمونه از چنین خروجی هنگام اجرا روی یک حساب
       جیمیل به این صورت است:

           * LIST (\HasNoChildren) "/" "INBOX"
           * LIST (\HasChildren \Noselect) "/" "[Gmail]"
           * LIST (\All \HasNoChildren) "/" "[Gmail]/All Mail"
           * LIST (\Drafts \HasNoChildren) "/" "[Gmail]/Drafts"
           * LIST (\HasNoChildren \Important) "/" "[Gmail]/Important"
           * LIST (\HasNoChildren \Sent) "/" "[Gmail]/Sent Mail"
           * LIST (\HasNoChildren \Junk) "/" "[Gmail]/Spam"
           * LIST (\Flagged \HasNoChildren) "/" "[Gmail]/Starred"
           * LIST (\HasNoChildren \Trash) "/" "[Gmail]/Trash"

       در اینجا می‌توانید مشاهده کنید که نام صحیح برای پوشه "Junk" برابر با
       [Gmail]/Spam و برای پوشه "Trash" برابر با [Gmail]/Trash است. از منطق
       مشابه می‌توان برای تعیین سایر پوشه‌ها نیز استفاده کرد.

مثال‌ها (EXAMPLES)
       استفاده از حالت تونل:

           [imap]
               folder = "INBOX.Drafts"
               tunnel = "ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null"

       استفاده از حالت مستقیم:

           [imap]
               folder = "INBOX.Drafts"
               host = imap://imap.example.com
               user = bob
               pass = p4ssw0rd

       استفاده از حالت مستقیم همراه با SSL:

           [imap]
               folder = "INBOX.Drafts"
               host = imaps://imap.example.com
               user = bob
               pass = p4ssw0rd
               port = 123
               ; sslVerify = false


           یادداشت

           ممکن است بخواهید هنگام عیب‌یابی از sslVerify=false استفاده کنید، در
           صورتی که احتمال می‌دهید دلیل بروز مشکل در اتصال این است که گواهی
           مورداستفاده در سرور خصوصی example.com که قصد راه‌اندازی آن را دارید
           (یا راه‌اندازی کرده‌اید) ممکن است به درستی تأیید نشده باشد.

       استفاده از رابط IMAP جیمیل:

           [imap]
               folder = "[Gmail]/Drafts"
               host = imaps://imap.gmail.com
               user = user@gmail.com
               port = 993


       جیمیل اجازه استفاده از گذرواژه معمولی شما را برای git imap-send نمی‌دهد.
       اگر در حساب جیمیل خود احراز هویت چندعاملی را تنظیم کرده‌اید، می‌توانید یک
       گذرواژه مخصوص برنامه (app-specific password) برای استفاده با git
       imap-send تولید کنید. برای ایجاد آن به
       https://security.google.com/settings/security/apppasswords مراجعه کنید.
       متناوباً، می‌توانید از احراز هویت بر پایه OAuth2.0 همان‌طور که در ادامه
       توضیح داده شده است استفاده کنید.

           یادداشت

           اگر خطایی دریافت کردید مبنی بر اینکه "Folder doesn’t exist" (پوشه
           وجود ندارد)، ممکن است لازم باشد در عوض از folder = "[Google
           Mail]/Drafts" استفاده کنید. همچنین می‌توانید دستور git imap-send
           --list را برای دریافت فهرست پوشه‌های موجود اجرا نمایید.

           یادداشت

           اگر حساب جیمیل شما روی زبانی غیر از انگلیسی تنظیم شده باشد، نام
           پوشه "Drafts" بومی‌سازی خواهد شد.

       اگر می‌خواهید از احراز هویت مبتنی بر OAuth2.0 استفاده کنید، می‌توانید
       سازوکار OAUTHBEARER یا XOAUTH2 را در پیکربندی خود مشخص کنید. این روش
       امن‌تر از استفاده از گذرواژه‌های مخصوص برنامه است و همچنین نیازی به داشتن
       احراز هویت چندعاملی را تحمیل نمی‌کند. هنگام استفاده از این احراز هویت،
       باید از یک توکن دسترسی OAuth2.0 به جای گذرواژه خود استفاده کنید.

           [imap]
               folder = "[Gmail]/Drafts"
               host = imaps://imap.gmail.com
               user = user@gmail.com
               port = 993
               authmethod = OAUTHBEARER


       استفاده از رابط IMAP اوت‌لوک (Outlook):

       برخلاف جیمیل، اوت‌لوک فقط از احراز هویت مبتنی بر OAuth2.0 پشتیبانی
       می‌کند. همچنین تنها از XOAUTH2 به عنوان سازوکار پشتیبانی می‌نماید.

           [imap]
               folder = "Drafts"
               host = imaps://outlook.office365.com
               user = user@outlook.com
               port = 993
               authmethod = XOAUTH2


       پس از آماده شدن کامیت‌ها برای ارسال، دستور زیر را اجرا کنید:

           $ git format-patch --cover-letter -M --stdout origin/master | git imap-send

       فقط مطمئن شوید که شکستن خطوط (line wrapping) را در کلاینت ایمیل غیرفعال
       کرده‌اید (رابط وب جیمیل در هر صورت خطوط را می‌شکند، بنابراین باید از یک
       کلاینت واقعی IMAP استفاده کنید).

       در صورتی که از احراز هویت OAuth2.0 استفاده می‌کنید، استفاده از دستیارهای
       اعتبارسنجی (credential helpers) برای تولید توکن‌ها آسان‌تر است. دستیارهای
       اعتبارنامه‌ای که در git-send-email(1) پیشنهاد شده‌اند، می‌توانند برای git
       imap-send نیز استفاده شوند.

هشدار (CAUTION)
       همچنان مسئولیت این موضوع با شماست که اطمینان حاصل کنید پیام ایمیل
       ارسال‌شده توسط برنامه ایمیل شما با استانداردهای پروژه مطابقت دارد.
       بسیاری از پروژه‌ها دوست ندارند وصله‌ها به صورت ضمیمه (attachment) ارسال
       شوند. برخی از نرم‌افزارهای ایمیل وصله‌ها را به روش‌هایی تغییر می‌دهند
       (مانند شکستن خطوط، ارسال آن‌ها به صورت format=flowed) که باعث شکست و
       نامعتبر شدن آن‌ها می‌شود. اگر این مورد را بررسی نکنید، با انتقادهای تند
       مواجه خواهید شد.

       به‌ویژه مشخص شده است که تاندربرد (Thunderbird) مشکل‌ساز است. کاربران
       Thunderbird می‌توانند برای اطلاعات بیشتر به این صفحه وب مراجعه کنند:
       https://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email

همچنین ببینید (SEE ALSO)
       git-format-patch(1), git-send-email(1), mbox(5)

گیت (GIT)
       بخشی از مجموعه git(1)

Git 2.55.0                        2026-06-29                  GIT-IMAP-SEND(1)