Closed Bug 254385 Opened 20 years ago Closed 19 years ago

changing default smtp servers does not stick

Categories

(Thunderbird :: Account Manager, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 222388

People

(Reporter: mrsteveo, Assigned: mscott)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.8
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.8

If you have for instance, smtp.internetcds.com and mail.mind.net and change the
default, it doesn't seem to stick.  Removing the one you don't want and leaving
just one makes it use the right one, but changing from one default to the other
appears ignored in Thunderbird 0.9.3

Reproducible: Always
Steps to Reproduce:
1. Add 2 SMTP servers.
2. Change the default server
3. Attempt to send mail and see if it's using the new default SMTP server you chose.

Actual Results:  
When I had smtp.mind.net as the default, I changed to smtp.mind.net as the
default and when I sent mail, it still used the wrong server, even with the
default set.

Expected Results:  
I would have expected Thunderbird to use the server that's marked 'default.'

Fresh install of 0.9.3 of Thunderbird.  No themes.. nothing fancy.
Same problem in Mozilla 1.7.2.  Exiting and restarting Mozilla does not solve
it, I have to delete the first server to make it send the message to the second one.
I have the same problem in version 1.0. Very annoying to have to delete the 
other smtp server to change it.
I also could reproduce the same behavior. If you take a look at the function
GetSmtpServerByIdentity() in mailnews/compose/src/nsSmtpService.cpp, you could
find that 'identity's preferred server' has precedence over 'default server'.

NS_IMETHODIMP
nsSmtpService::GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity,
nsISmtpServer **aSmtpServer)
{
...
  // First try the identity's preferred server
  if (aSenderIdentity) {
      nsXPIDLCString smtpServerKey;
      rv = aSenderIdentity->GetSmtpServerKey(getter_Copies(smtpServerKey));
      if (NS_SUCCEEDED(rv) && !(smtpServerKey.IsEmpty()))
          rv = GetServerByKey(smtpServerKey, aSmtpServer);
  }

  // Fallback to the default
  if (NS_FAILED(rv) || !(*aSmtpServer))
      rv = GetDefaultServer(aSmtpServer);
  return rv;
}

In other words, thunderbird has two types of smtp server setting - default &
identity's preferred, and uses the latter if it is valid. I believe that this
logic confuses users. Even worse, it is hard to find the place for setting
identity's preferred server.

A temporary solution could be changing identity's preferred server (with notice)
when a user changes default smtp server. FYI, This bug seems to be duplication
of #170089. Same to bug #265198.
I also could reproduce the same behavior. If you take a look at the function
GetSmtpServerByIdentity() in mailnews/compose/src/nsSmtpService.cpp, you could
find that 'identity's preferred server' has precedence over 'default server'.

NS_IMETHODIMP
nsSmtpService::GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity,
nsISmtpServer **aSmtpServer)
{
...
  // First try the identity's preferred server
  if (aSenderIdentity) {
      nsXPIDLCString smtpServerKey;
      rv = aSenderIdentity->GetSmtpServerKey(getter_Copies(smtpServerKey));
      if (NS_SUCCEEDED(rv) && !(smtpServerKey.IsEmpty()))
          rv = GetServerByKey(smtpServerKey, aSmtpServer);
  }

  // Fallback to the default
  if (NS_FAILED(rv) || !(*aSmtpServer))
      rv = GetDefaultServer(aSmtpServer);
  return rv;
}

In other words, thunderbird has two types of smtp server setting - default &
identity's preferred, and uses the latter if it is valid. I believe that this
logic confuses users. Even worse, it is hard to find the place for setting
identity's preferred server.

A temporary solution could be changing identity's preferred server (with notice)
when a user changes default smtp server. FYI, This bug seems to be duplication
of #170089. Same to bug #265198.
(In reply to comment #4)
sorry for posting the comment twice, my mistake ;-)
This is not the bug... The real issue, I found out with some help from the 
support forums, is the "Always Use Default Server" setting is not set by 
default. You must set this for each account so they use the default server 
instead of the server Thunderbird Assigns to it.
Tools->Account Settings
Click Email Account
Click Server Settings
Click Advanced
Click SMTP tab
Select "Always Use Default Server" from the Combo Box

Make sure this is set for each account you want to use the default SMTP 
server. It's been working since I did that.
(In reply to comment #6)
> This is not the bug... The real issue, I found out with some help from the 
> support forums, is the "Always Use Default Server" setting is not set by 
> default. 

Joey, thanks for your comment. Now, I got better understanding of this issue.
Also, I found that the discussion in bug 170089 also designated same point. 
Joey seems to have understood Bug 222388(probably Bug 170089 comment #15 too),
and Jeongkyu Kim seems to have has understood Bug 170089.

Steve Ryan(bug opener) and Jerry Zdenek, still problem exists?
If yes, read Thunderbird FAQ at Knowledge Base of MozillaZine first.
http://kb.mozillazine.org/index.phtml?title=Thunderbird_:_FAQs_:_Multiple_SMTP_Servers
 
(nest is also recommended)
http://kb.mozillazine.org/index.phtml?title=Thunderbird_:_FAQs_:_Multiple_Identities
Still in trouble?

*** This bug has been marked as a duplicate of 222388 ***
Status: UNCONFIRMED → RESOLVED
Closed: 19 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.