| GIT-IMAP-SEND(1) | دستورات عمومی کاربر | GIT-IMAP-SEND(1) |
نام (NAME)
git-imap-send - ارسال مجموعهای از وصلهها از ورودی استاندارد به یک پوشه IMAP
خلاصه دستور (SYNOPSIS)
git imap-send [-v] [-q] [--[no-]curl] [(--folder|-f) <folder>] 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=<folder>
--curl
--no-curl
--list
پیکربندی (CONFIGURATION)
برای استفاده از این ابزار، باید imap.folder و یکی از گزینههای imap.tunnel یا imap.host روی مقادیر مناسب تنظیم شده باشند.
تمام موارد بالای این خط در این بخش از مستندات git-config(1) گنجانده نشده است. محتوایی که در ادامه میآید همان چیزی است که در آنجا یافت میشود:
imap.folder
imap.tunnel
imap.host
imap.user
imap.pass
imap.port
imap.sslverify
imap.preformattedHTML
imap.authMethod
دریافت فهرست پوشههای در دسترس (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)
| 2026-06-29 | Git 2.55.0 |