mirror of
https://github.com/hyzendust/mutt-add-account.git
synced 2026-02-15 04:01:12 +01:00
Update: mx lookup failure fallback
This commit is contained in:
@@ -76,6 +76,8 @@ echo "Searching for server settings..."
|
|||||||
# Try to get MX record and extract mail server
|
# Try to get MX record and extract mail server
|
||||||
mx_record=$(dig +short MX "$email_domain" 2>/dev/null | sort -n | head -1 | awk '{print $2}' | sed 's/\.$//')
|
mx_record=$(dig +short MX "$email_domain" 2>/dev/null | sort -n | head -1 | awk '{print $2}' | sed 's/\.$//')
|
||||||
|
|
||||||
|
detection_failed=false
|
||||||
|
|
||||||
if [ -n "$mx_record" ]; then
|
if [ -n "$mx_record" ]; then
|
||||||
# Got MX record, try common IMAP server patterns
|
# Got MX record, try common IMAP server patterns
|
||||||
base_domain=$(echo "$mx_record" | sed 's/^smtp\.//' | sed 's/^mx[0-9]*\.//' | sed 's/^mail\.//')
|
base_domain=$(echo "$mx_record" | sed 's/^smtp\.//' | sed 's/^mx[0-9]*\.//' | sed 's/^mail\.//')
|
||||||
@@ -98,11 +100,16 @@ if [ -n "$mx_record" ]; then
|
|||||||
detected_smtp="$detected_imap"
|
detected_smtp="$detected_imap"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Fallback if MX lookup fails
|
# MX lookup failed - check if domain itself exists
|
||||||
|
if host "$email_domain" &>/dev/null; then
|
||||||
detected_imap="mail.${email_domain}"
|
detected_imap="mail.${email_domain}"
|
||||||
detected_smtp="mail.${email_domain}"
|
detected_smtp="mail.${email_domain}"
|
||||||
|
else
|
||||||
|
detection_failed=true
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$detection_failed" = false ]; then
|
||||||
# Detect port by testing common ports
|
# Detect port by testing common ports
|
||||||
detected_port="465"
|
detected_port="465"
|
||||||
if timeout 2 bash -c "echo -n '' > /dev/tcp/$detected_smtp/587" 2>/dev/null; then
|
if timeout 2 bash -c "echo -n '' > /dev/tcp/$detected_smtp/587" 2>/dev/null; then
|
||||||
@@ -134,6 +141,16 @@ else
|
|||||||
read -p "Enter SMTP port (465 for SSL/TLS, 587 for STARTTLS) [465]: " smtp_port
|
read -p "Enter SMTP port (465 for SSL/TLS, 587 for STARTTLS) [465]: " smtp_port
|
||||||
smtp_port=${smtp_port:-465}
|
smtp_port=${smtp_port:-465}
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
# Detection completely failed
|
||||||
|
echo ""
|
||||||
|
echo "Could not auto-detect mail server settings for $email_domain"
|
||||||
|
echo "Please enter settings manually:"
|
||||||
|
read -p "Enter IMAP server: " imap_server
|
||||||
|
read -p "Enter SMTP server: " smtp_server
|
||||||
|
read -p "Enter SMTP port (465 for SSL/TLS, 587 for STARTTLS) [465]: " smtp_port
|
||||||
|
smtp_port=${smtp_port:-465}
|
||||||
|
fi
|
||||||
|
|
||||||
# Extract username from email
|
# Extract username from email
|
||||||
username="${email%%@*}"
|
username="${email%%@*}"
|
||||||
|
|||||||
Reference in New Issue
Block a user