Other: Make configure apple mail work in split and combined mode

This commit is contained in:
James Houlahan
2022-10-12 17:28:20 +02:00
parent 1e845adc17
commit 4dc32dc7f2

View File

@ -6,6 +6,7 @@ import (
"github.com/ProtonMail/proton-bridge/v2/internal/clientconfig" "github.com/ProtonMail/proton-bridge/v2/internal/clientconfig"
"github.com/ProtonMail/proton-bridge/v2/internal/constants" "github.com/ProtonMail/proton-bridge/v2/internal/constants"
"github.com/ProtonMail/proton-bridge/v2/internal/useragent" "github.com/ProtonMail/proton-bridge/v2/internal/useragent"
"github.com/ProtonMail/proton-bridge/v2/internal/vault"
) )
func (bridge *Bridge) ConfigureAppleMail(userID, address string) error { func (bridge *Bridge) ConfigureAppleMail(userID, address string) error {
@ -14,11 +15,18 @@ func (bridge *Bridge) ConfigureAppleMail(userID, address string) error {
return ErrNoSuchUser return ErrNoSuchUser
} }
// TODO: Handle split mode!
if address == "" { if address == "" {
address = user.Emails()[0] address = user.Emails()[0]
} }
username := address
addresses := address
if user.GetAddressMode() == vault.CombinedMode {
username = user.Emails()[0]
addresses = strings.Join(user.Emails(), ",")
}
// If configuring apple mail for Catalina or newer, users should use SSL. // If configuring apple mail for Catalina or newer, users should use SSL.
if useragent.IsCatalinaOrNewer() && !bridge.vault.GetSMTPSSL() { if useragent.IsCatalinaOrNewer() && !bridge.vault.GetSMTPSSL() {
if err := bridge.SetSMTPSSL(true); err != nil { if err := bridge.SetSMTPSSL(true); err != nil {
@ -32,8 +40,8 @@ func (bridge *Bridge) ConfigureAppleMail(userID, address string) error {
bridge.vault.GetSMTPPort(), bridge.vault.GetSMTPPort(),
bridge.vault.GetIMAPSSL(), bridge.vault.GetIMAPSSL(),
bridge.vault.GetSMTPSSL(), bridge.vault.GetSMTPSSL(),
address, username,
strings.Join(user.Emails(), ","), addresses,
user.BridgePass(), user.BridgePass(),
) )
} }