Skip to content

Instantly share code, notes, and snippets.

@garywill
Created January 9, 2025 01:22
Show Gist options
  • Select an option

  • Save garywill/1153c8ed53aa3621caf37788f46ef9c6 to your computer and use it in GitHub Desktop.

Select an option

Save garywill/1153c8ed53aa3621caf37788f46ef9c6 to your computer and use it in GitHub Desktop.
用mutt在终端里收邮件,用IMAP,不下载
#!/bin/bash
TDIR=$(mktemp -d /dev/shm/imapread-XXXXX)
cd "$TDIR"
touch alias mutt_certificates mutthistory postponed sent signature
mkdir Mail mbox spool tmp
account="$1"
declare -A server_addrs
server_addrs=(
["yahoo.com_prot"]="imap"
["yahoo.com_imap"]="imap.mail.yahoo.com"
["163.com_prot"]="imap"
["163.com_imap"]="imap.163.com"
)
# TODO 把这些放其他地方
declare -A acct_pswds
acct_pswds=(
["who@aaa.com"]="xxxxxxxxxxx"
)
domain=$(echo "$account" | cut -d@ -f2)
echo "domain: $domain"
prot=${server_addrs["${domain}_prot"]}
echo "protocol: $prot"
server=${server_addrs["${domain}_${prot}"]}
echo "receiving server address: $server"
smtp_server=${server_addrs["${domain}_smtp"]}
echo "sending server address: $smtp_server"
password=${acct_pswds["$account"]}
cat << EOF > "$TDIR/muttrc"
set alias_file="$TDIR/alias"
set certificate_file="$TDIR/mutt_certificates"
#set folder="$TDIR/Mail" # dir
set history_file="$TDIR/mutthistory"
set mbox="$TDIR/mbox" # dir
set postponed="$TDIR/postponed"
set record="$TDIR/sent"
set signature="$TDIR/signature"
#set spoolfile="$TDIR/spool" # dir
set tmpdir="$TDIR/tmp" # dir
set read_only=yes
#set charset="utf8"
#set charset="gbk"
set ssl_force_tls = yes
set mail_check=9999
set pop_checkinterval=9999
set pop_delete=no
set pop_reconnect=no
set pop_last = yes
#bind index G imap-fetch-mail
set folder = "${prot}s://${server}"
set ${prot}_user = "$account"
set ${prot}_pass = "$password"
set smtp_url = "smtps://${account}@${smtp_server}"
set smtp_pass = "$password"
# must be last
set spoolfile = "+INBOX"
EOF
xdg-terminal "bash -c \"mutt -F \\\"$TDIR/muttrc\\\" ; rm -rf \\\"$TDIR\\\" \" "
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment