Protonmail Config Fixes (#313)
* Run serverinfo query based on if proton or not * If domain is already protonmail don't ask if it is * Fix protonmail fingerprint extraction * Update docs re: protonmail bridge timing out
This commit is contained in:
		@@ -112,6 +112,7 @@ mutt-wizard is free/libre software, licensed under the GPLv3.
 | 
				
			|||||||
## Watch out for these things:
 | 
					## Watch out for these things:
 | 
				
			||||||
- Gmail accounts can now create 'App Password' to use with """less secure""" applications. This password is single use (ie. for setup) and will be stored and encrypted locally. Enabling third-party applications requires turning off two-factor authentication and this will circumvent that. You might also need to manually "Enable IMAP" in the settings.
 | 
					- Gmail accounts can now create 'App Password' to use with """less secure""" applications. This password is single use (ie. for setup) and will be stored and encrypted locally. Enabling third-party applications requires turning off two-factor authentication and this will circumvent that. You might also need to manually "Enable IMAP" in the settings.
 | 
				
			||||||
- Protonmail accounts will require you to set up "Protonmail Bridge" to access PM's IMAP and SMTP servers. Configure that before running mutt-wizard.
 | 
					- Protonmail accounts will require you to set up "Protonmail Bridge" to access PM's IMAP and SMTP servers. Configure that before running mutt-wizard.
 | 
				
			||||||
 | 
					- Protonmail bridge is prone to timing out. Watch out for this while adding an account. If the bridge times out, try again.
 | 
				
			||||||
- If you have a university email, or enterprise-hosted email for work, there might be other hurdles or two-factor authentication you have to jump through. Some, for example, will want you to create a separate IMAP password, etc.
 | 
					- If you have a university email, or enterprise-hosted email for work, there might be other hurdles or two-factor authentication you have to jump through. Some, for example, will want you to create a separate IMAP password, etc.
 | 
				
			||||||
 - `isync` is not fully UTF-8 compatible, so non-Latin characters may be garbled (although sync should succeed). `mw` will also not autocreate mailbox shortcuts since it is looking for English mailbox names. I strongly recommend you to set your email language to English on your mail server to avoid these problems.
 | 
					 - `isync` is not fully UTF-8 compatible, so non-Latin characters may be garbled (although sync should succeed). `mw` will also not autocreate mailbox shortcuts since it is looking for English mailbox names. I strongly recommend you to set your email language to English on your mail server to avoid these problems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								bin/mw
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								bin/mw
									
									
									
									
									
								
							@@ -134,8 +134,22 @@ askinfo() { \
 | 
				
			|||||||
		printf "\033[0m"
 | 
							printf "\033[0m"
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
	domain="$(echo "$fulladdr" | sed "s/.*@//")"
 | 
						domain="$(echo "$fulladdr" | sed "s/.*@//")"
 | 
				
			||||||
 | 
					  search_query=$domain
 | 
				
			||||||
 | 
					  case "$domain" in
 | 
				
			||||||
 | 
					    protonmail.com|protonmail.ch|pm.me)
 | 
				
			||||||
 | 
					      search_query='protonmail.com' && break;;
 | 
				
			||||||
 | 
					    *)
 | 
				
			||||||
 | 
					      while : ; do
 | 
				
			||||||
 | 
					        printf "\nIs your email hosted with Protonmail? [yes/no] "
 | 
				
			||||||
 | 
					        read -r is_protonmail
 | 
				
			||||||
 | 
					        case $is_protonmail in
 | 
				
			||||||
 | 
					          [Yy][Ee][Ss]) search_query='protonmail.com' && break;;
 | 
				
			||||||
 | 
					          [Nn][Oo]) break;;
 | 
				
			||||||
 | 
					          *) printf 'Please answer Yes or No'
 | 
				
			||||||
 | 
					        esac; done;
 | 
				
			||||||
 | 
					  esac
 | 
				
			||||||
	printf "\\nSearching for \033[32m%s\033[0m in \033[34m\`domains.csv\`\033[0m..." "$domain"
 | 
						printf "\\nSearching for \033[32m%s\033[0m in \033[34m\`domains.csv\`\033[0m..." "$domain"
 | 
				
			||||||
	serverinfo="$(grep "^$domain" "$muttshare/domains.csv" 2>/dev/null)"
 | 
						serverinfo="$(grep "^$search_query" "$muttshare/domains.csv" 2>/dev/null)"
 | 
				
			||||||
	if [ -z "$serverinfo" ]; then
 | 
						if [ -z "$serverinfo" ]; then
 | 
				
			||||||
		printf "Your email domain is not in mutt-wizard's database yet.\\nmutt-wizard will still autoconfigure everything, but you will have to manually type in your service's IMAP and SMTP server information.\\nYou can usually quickly find this by internet searching for it.\\n"
 | 
							printf "Your email domain is not in mutt-wizard's database yet.\\nmutt-wizard will still autoconfigure everything, but you will have to manually type in your service's IMAP and SMTP server information.\\nYou can usually quickly find this by internet searching for it.\\n"
 | 
				
			||||||
		printf "Insert the IMAP server for your email provider (excluding the port number)\\n\033[36m\t"
 | 
							printf "Insert the IMAP server for your email provider (excluding the port number)\\n\033[36m\t"
 | 
				
			||||||
@@ -194,7 +208,7 @@ EOF
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protonfinger() { printf "Getting Protonmail bridge fingerprint...\\n"
 | 
					protonfinger() { printf "Getting Protonmail bridge fingerprint...\\n"
 | 
				
			||||||
	fingerprint="$(msmtp --serverinfo --host=127.0.0.1 --port=1025 --tls --tls-certcheck=off)" || return 1
 | 
					  fingerprint="$(msmtp --serverinfo --host=127.0.0.1 --port=1025 --tls --tls-certcheck=off | grep SHA256: | sed 's/^.*: //')"
 | 
				
			||||||
	sed -ibu "s/account $title/&\ntls_trust_file\ntls_fingerprint $fingerprint/" "$msmtprc" ; rm -f "$msmtprc"bu
 | 
						sed -ibu "s/account $title/&\ntls_trust_file\ntls_fingerprint $fingerprint/" "$msmtprc" ; rm -f "$msmtprc"bu
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user