From e3c400f6636249b3e8576a3e2d3a87c482a45b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=BD=AE?= Date: Wed, 11 Mar 2026 16:08:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E5=88=97=E8=A1=A8=E5=A4=A7?= =?UTF-8?q?=E5=B9=85=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skills/imap-smtp-email/SKILL.md | 83 ++++++++++---- skills/imap-smtp-email/setup.sh | 195 ++++++++++++++++++++++++++++---- 2 files changed, 239 insertions(+), 39 deletions(-) diff --git a/skills/imap-smtp-email/SKILL.md b/skills/imap-smtp-email/SKILL.md index 908f901..b61ca3e 100644 --- a/skills/imap-smtp-email/SKILL.md +++ b/skills/imap-smtp-email/SKILL.md @@ -1,6 +1,6 @@ --- name: imap-smtp-email -description: Read and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments. Works with any IMAP/SMTP server including Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, and vip.188.com. +description: Read and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments. Works with any standard IMAP/SMTP server. metadata: openclaw: emoji: "📧" @@ -20,7 +20,7 @@ metadata: # IMAP/SMTP Email Tool -Read, search, and manage email via IMAP protocol. Send email via SMTP. Supports Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, vip.188.com, and any standard IMAP/SMTP server. +Read, search, and manage email via IMAP protocol. Send email via SMTP. Works with any standard IMAP/SMTP server. ## Configuration @@ -48,29 +48,71 @@ SMTP_REJECT_UNAUTHORIZED=true # Set to false for self-signed certs ## Common Email Servers -| Provider | IMAP Host | IMAP Port | SMTP Host | SMTP Port | -|----------|-----------|-----------|-----------|-----------| -| 163.com | imap.163.com | 993 | smtp.163.com | 465 | -| vip.163.com | imap.vip.163.com | 993 | smtp.vip.163.com | 465 | -| 126.com | imap.126.com | 993 | smtp.126.com | 465 | -| vip.126.com | imap.vip.126.com | 993 | smtp.vip.126.com | 465 | -| 188.com | imap.188.com | 993 | smtp.188.com | 465 | -| vip.188.com | imap.vip.188.com | 993 | smtp.vip.188.com | 465 | -| yeah.net | imap.yeah.net | 993 | smtp.yeah.net | 465 | -| Gmail | imap.gmail.com | 993 | smtp.gmail.com | 587 | -| Outlook | outlook.office365.com | 993 | smtp.office365.com | 587 | -| QQ Mail | imap.qq.com | 993 | smtp.qq.com | 587 | +### Global Providers -**Important for Gmail:** -- Gmail does **not** accept your regular account password -- You must generate an **App Password**: https://myaccount.google.com/apppasswords -- Use the generated 16-character App Password as `IMAP_PASS` / `SMTP_PASS` +| Provider | IMAP Host | IMAP Port | SMTP Host | SMTP Port | SMTP Secure | +|----------|-----------|-----------|-----------|-----------|-------------| +| Gmail | imap.gmail.com | 993 | smtp.gmail.com | 587 | false | +| Outlook / Hotmail | outlook.office365.com | 993 | smtp.office365.com | 587 | false | +| Yahoo Mail | imap.mail.yahoo.com | 993 | smtp.mail.yahoo.com | 465 | true | +| iCloud Mail | imap.mail.me.com | 993 | smtp.mail.me.com | 587 | false | +| Zoho Mail | imap.zoho.com | 993 | smtp.zoho.com | 465 | true | +| Fastmail | imap.fastmail.com | 993 | smtp.fastmail.com | 465 | true | +| AOL Mail | imap.aol.com | 993 | smtp.aol.com | 465 | true | +| GMX Mail | imap.gmx.com | 993 | mail.gmx.com | 587 | false | +| ProtonMail (Bridge) | 127.0.0.1 | 1143 | 127.0.0.1 | 1025 | false | + +### Japan Providers (日本のメールサービス) + +| Provider | IMAP Host | IMAP Port | SMTP Host | SMTP Port | SMTP Secure | +|----------|-----------|-----------|-----------|-----------|-------------| +| Yahoo! JAPAN | imap.mail.yahoo.co.jp | 993 | smtp.mail.yahoo.co.jp | 465 | true | +| OCN | imap.ocn.ne.jp | 993 | smtp.ocn.ne.jp | 465 | true | +| BIGLOBE | mail.biglobe.ne.jp | 993 | mail.biglobe.ne.jp | 465 | true | +| @nifty | imap.nifty.com | 993 | smtp.nifty.com | 587 | false | +| plala | imap.plala.or.jp | 993 | secure.plala.or.jp | 465 | true | +| So-net | imap.so-net.ne.jp | 993 | mail.so-net.ne.jp | 587 | false | +| au Mail (@au.com) | imap.au.com | 993 | smtp.au.com | 465 | true | +| Excite Mail | imap.excite.co.jp | 993 | smtp.excite.co.jp | 587 | false | +| Infoseek Mail | imap.infoseek.jp | 993 | smtp.infoseek.jp | 587 | false | +| SAKURA Internet | imap.sakura.ne.jp | 993 | smtp.sakura.ne.jp | 587 | false | + +### China Providers (中国邮箱) + +| Provider | IMAP Host | IMAP Port | SMTP Host | SMTP Port | SMTP Secure | +|----------|-----------|-----------|-----------|-----------|-------------| +| 163.com | imap.163.com | 993 | smtp.163.com | 465 | true | +| vip.163.com | imap.vip.163.com | 993 | smtp.vip.163.com | 465 | true | +| 126.com | imap.126.com | 993 | smtp.126.com | 465 | true | +| vip.126.com | imap.vip.126.com | 993 | smtp.vip.126.com | 465 | true | +| 188.com | imap.188.com | 993 | smtp.188.com | 465 | true | +| vip.188.com | imap.vip.188.com | 993 | smtp.vip.188.com | 465 | true | +| yeah.net | imap.yeah.net | 993 | smtp.yeah.net | 465 | true | +| QQ Mail | imap.qq.com | 993 | smtp.qq.com | 587 | false | + +### Provider-specific Notes + +**Gmail:** +- Does **not** accept regular account password +- Must generate an **App Password**: https://myaccount.google.com/apppasswords - Requires Google Account with 2-Step Verification enabled -**Important for 163.com:** +**iCloud Mail:** +- Requires an **App-Specific Password**: https://appleid.apple.com/account/manage +- Enable "Access IMAP" in iCloud Mail settings + +**Yahoo! JAPAN (Yahoo! JAPANメール):** +- Use **App Password** (アプリパスワード), not account password +- Enable IMAP access in Yahoo! JAPAN Mail settings (設定 → IMAP/POP/SMTPアクセス) + +**163.com / 126.com / yeah.net:** - Use **authorization code** (授权码), not account password - Enable IMAP/SMTP in web settings first +**OCN / BIGLOBE / @nifty / plala / So-net:** +- Some ISPs require you to enable IMAP/SMTP access first from web settings +- Use the mail password provided by the ISP (may differ from login password) + ## IMAP Commands (Receiving Email) ### check @@ -205,6 +247,9 @@ npm install - Check password is correct - For 163.com: use authorization code, not account password - For Gmail: regular password won't work — generate an App Password at https://myaccount.google.com/apppasswords +- For iCloud: use App-Specific Password from https://appleid.apple.com/account/manage +- For Yahoo! JAPAN: use App Password (アプリパスワード) +- For Japanese ISPs (OCN, BIGLOBE, etc.): use the mail-specific password from your ISP **TLS/SSL errors:** - Match `IMAP_TLS`/`SMTP_SECURE` setting to server requirements diff --git a/skills/imap-smtp-email/setup.sh b/skills/imap-smtp-email/setup.sh index cb20845..23a07dc 100644 --- a/skills/imap-smtp-email/setup.sh +++ b/skills/imap-smtp-email/setup.sh @@ -11,19 +11,41 @@ echo "" # Prompt for email provider echo "Select your email provider:" -echo " 1) Gmail" -echo " 2) Outlook" -echo " 3) 163.com" -echo " 4) vip.163.com" -echo " 5) 126.com" -echo " 6) vip.126.com" -echo " 7) 188.com" -echo " 8) vip.188.com" -echo " 9) yeah.net" -echo " 10) QQ Mail" -echo " 11) Custom" echo "" -read -p "Enter choice (1-11): " PROVIDER_CHOICE +echo " --- Global ---" +echo " 1) Gmail" +echo " 2) Outlook / Hotmail" +echo " 3) Yahoo Mail" +echo " 4) iCloud Mail" +echo " 5) Zoho Mail" +echo " 6) Fastmail" +echo " 7) AOL Mail" +echo " 8) GMX Mail" +echo " 9) ProtonMail (Bridge)" +echo "" +echo " --- Japan (日本) ---" +echo " 10) Yahoo! JAPAN" +echo " 11) OCN" +echo " 12) BIGLOBE" +echo " 13) @nifty" +echo " 14) plala" +echo " 15) So-net" +echo " 16) au Mail (@au.com)" +echo " 17) SAKURA Internet" +echo "" +echo " --- China (中国) ---" +echo " 18) 163.com" +echo " 19) vip.163.com" +echo " 20) 126.com" +echo " 21) vip.126.com" +echo " 22) 188.com" +echo " 23) vip.188.com" +echo " 24) yeah.net" +echo " 25) QQ Mail" +echo "" +echo " 99) Custom" +echo "" +read -p "Enter choice: " PROVIDER_CHOICE case $PROVIDER_CHOICE in 1) @@ -49,6 +71,139 @@ case $PROVIDER_CHOICE in IMAP_TLS="true" ;; 3) + IMAP_HOST="imap.mail.yahoo.com" + IMAP_PORT="993" + SMTP_HOST="smtp.mail.yahoo.com" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + ;; + 4) + IMAP_HOST="imap.mail.me.com" + IMAP_PORT="993" + SMTP_HOST="smtp.mail.me.com" + SMTP_PORT="587" + SMTP_SECURE="false" + IMAP_TLS="true" + echo "" + echo "⚠️ iCloud requires an App-Specific Password." + echo " 1. Go to: https://appleid.apple.com/account/manage" + echo " 2. Generate an App-Specific Password" + echo " 3. Use the generated password below" + echo "" + ;; + 5) + IMAP_HOST="imap.zoho.com" + IMAP_PORT="993" + SMTP_HOST="smtp.zoho.com" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + ;; + 6) + IMAP_HOST="imap.fastmail.com" + IMAP_PORT="993" + SMTP_HOST="smtp.fastmail.com" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + ;; + 7) + IMAP_HOST="imap.aol.com" + IMAP_PORT="993" + SMTP_HOST="smtp.aol.com" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + ;; + 8) + IMAP_HOST="imap.gmx.com" + IMAP_PORT="993" + SMTP_HOST="mail.gmx.com" + SMTP_PORT="587" + SMTP_SECURE="false" + IMAP_TLS="true" + ;; + 9) + IMAP_HOST="127.0.0.1" + IMAP_PORT="1143" + SMTP_HOST="127.0.0.1" + SMTP_PORT="1025" + SMTP_SECURE="false" + IMAP_TLS="false" + echo "" + echo "⚠️ ProtonMail requires ProtonMail Bridge to be running locally." + echo "" + ;; + 10) + IMAP_HOST="imap.mail.yahoo.co.jp" + IMAP_PORT="993" + SMTP_HOST="smtp.mail.yahoo.co.jp" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + echo "" + echo "⚠️ Yahoo! JAPANはアプリパスワードが必要です。" + echo " Yahoo! JAPAN Mail設定 → IMAP/POP/SMTPアクセスを有効にしてください。" + echo "" + ;; + 11) + IMAP_HOST="imap.ocn.ne.jp" + IMAP_PORT="993" + SMTP_HOST="smtp.ocn.ne.jp" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + ;; + 12) + IMAP_HOST="mail.biglobe.ne.jp" + IMAP_PORT="993" + SMTP_HOST="mail.biglobe.ne.jp" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + ;; + 13) + IMAP_HOST="imap.nifty.com" + IMAP_PORT="993" + SMTP_HOST="smtp.nifty.com" + SMTP_PORT="587" + SMTP_SECURE="false" + IMAP_TLS="true" + ;; + 14) + IMAP_HOST="imap.plala.or.jp" + IMAP_PORT="993" + SMTP_HOST="secure.plala.or.jp" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + ;; + 15) + IMAP_HOST="imap.so-net.ne.jp" + IMAP_PORT="993" + SMTP_HOST="mail.so-net.ne.jp" + SMTP_PORT="587" + SMTP_SECURE="false" + IMAP_TLS="true" + ;; + 16) + IMAP_HOST="imap.au.com" + IMAP_PORT="993" + SMTP_HOST="smtp.au.com" + SMTP_PORT="465" + SMTP_SECURE="true" + IMAP_TLS="true" + ;; + 17) + IMAP_HOST="imap.sakura.ne.jp" + IMAP_PORT="993" + SMTP_HOST="smtp.sakura.ne.jp" + SMTP_PORT="587" + SMTP_SECURE="false" + IMAP_TLS="true" + ;; + 18) IMAP_HOST="imap.163.com" IMAP_PORT="993" SMTP_HOST="smtp.163.com" @@ -56,7 +211,7 @@ case $PROVIDER_CHOICE in SMTP_SECURE="true" IMAP_TLS="true" ;; - 4) + 19) IMAP_HOST="imap.vip.163.com" IMAP_PORT="993" SMTP_HOST="smtp.vip.163.com" @@ -64,7 +219,7 @@ case $PROVIDER_CHOICE in SMTP_SECURE="true" IMAP_TLS="true" ;; - 5) + 20) IMAP_HOST="imap.126.com" IMAP_PORT="993" SMTP_HOST="smtp.126.com" @@ -72,7 +227,7 @@ case $PROVIDER_CHOICE in SMTP_SECURE="true" IMAP_TLS="true" ;; - 6) + 21) IMAP_HOST="imap.vip.126.com" IMAP_PORT="993" SMTP_HOST="smtp.vip.126.com" @@ -80,7 +235,7 @@ case $PROVIDER_CHOICE in SMTP_SECURE="true" IMAP_TLS="true" ;; - 7) + 22) IMAP_HOST="imap.188.com" IMAP_PORT="993" SMTP_HOST="smtp.188.com" @@ -88,7 +243,7 @@ case $PROVIDER_CHOICE in SMTP_SECURE="true" IMAP_TLS="true" ;; - 8) + 23) IMAP_HOST="imap.vip.188.com" IMAP_PORT="993" SMTP_HOST="smtp.vip.188.com" @@ -96,7 +251,7 @@ case $PROVIDER_CHOICE in SMTP_SECURE="true" IMAP_TLS="true" ;; - 9) + 24) IMAP_HOST="imap.yeah.net" IMAP_PORT="993" SMTP_HOST="smtp.yeah.net" @@ -104,7 +259,7 @@ case $PROVIDER_CHOICE in SMTP_SECURE="true" IMAP_TLS="true" ;; - 10) + 25) IMAP_HOST="imap.qq.com" IMAP_PORT="993" SMTP_HOST="smtp.qq.com" @@ -112,7 +267,7 @@ case $PROVIDER_CHOICE in SMTP_SECURE="false" IMAP_TLS="true" ;; - 11) + 99) read -p "IMAP Host: " IMAP_HOST read -p "IMAP Port: " IMAP_PORT read -p "SMTP Host: " SMTP_HOST