Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#216 closed defect (fixed)

Compose window displays one ID, uses a different one

Reported by: virtid5944@… Owned by: rene
Version: 0.6.1 Keywords:
Cc:

Description

I have just been embarrassed by sending an email to a colleague from my personal identity instead of my work identity. The problem is reproducible. Here is the scenario:

  • Start in the inbox of my personal account
  • Click the compose button. The compose window opens, and the From: field displays my personal identity (as expected).
  • Enter my colleague's address in the To: field. Since I have written to this colleague before from my work address, the From: address changes to my work identity. More specifically, it changes to a virtual identity whose address is equivalent to that of my work base identity, but has some differences in capitalization. Next to the From address, the name of work's SMTP server is displayed.
  • Click send. The message is sent via my personal SMTP server with my personal address, contrary to what the From: field said would happen.

When I open the compose window, the debug log shows the following:

Thunderbird 3.0.1 (20100120214845; Linux i686)
 - Beagle Indexer {b656ef18-fd76-45e6-95cc-8043f26361e7} 0.1.3 [DISABLED]
 - CompactHeader {58D4392A-842E-11DE-B51A-C7B855D89593} 1.1.5
 - Dictionnaire français «Classique & Réforme 1990» fr-classique-reforme1990@dictionaries.addons.mozilla.org 3.5
 - External Editor {11d1a081-b8c3-4002-af38-6ad3e899fdfa} 0.8.0
 - Lightning {e2fda1a4-762b-4020-b5ad-a41df1933103} 1.0b2pre
 - Nostalgy nostalgy@alain.frisch 0.2.23
 - Provider for Google Calendar {a62ef8ec-5fdc-40c2-873c-223b8a6925cc} 0.6b2pre
 - ReminderFox {ada4b710-8346-4b82-8199-5de2b400a6ae} 1.9.6
 - Virtual Identity {dddd428e-5ac8-4a81-9f78-276c734f75b8} 0.6.0rc8
--------------------------------------------------------------------------------
## v_identity: composeDialog reopened. (msgType 0)
** v_identity.xml identityData setter
## v_identity: everything cleaned.
## v_identity: initSystemStage1.
** v_identity.xml identityData setter
** v_identity.xml smtp set to 'smtp2'
## v_identity: initSystemStage2.
## vI_smartIdentity: msgComposeType = 0
## vI_storage: getVIdentityFromAllRecipients()
## vI_rdfDatasource: __getRDFResourceForVIdentity: no Recipient given.
## vI_rdfDatasource: findMatchingFilter for .
## vI_rdfDatasource: findMatchingFilter no match found.
## vI_storage: found 0 address(es)
## v_identity: reopen done.

When I enter the colleague's address in the To: field and hit tab, the following is appended to the log:

## vI_storage: awOnBlur 'addressCol2#1'
## vI_storage: updateVIdentityFromStorage()
## vI_rdfDatasource: readVIdentityFromRDF found stored data.
## vI_rdfDatasource: email='me@work.com' fullName='My Name' id='null' smtp='smtp1'
## vI_rdfDatasource: email='me@work.com' fullName='My Name' id='null' smtp='smtp1'
## vI_rdfDatasource: extras:
## vI_rdfDatasource: findMatchingFilter for Colleague Name <colleague@work.com>.
## vI_rdfDatasource: findMatchingFilter no match found.
## vI_storage: compare with current Identity

** v_identity.xml msgIdentityCloneElem.doCommand() 
** v_identity.xml identityData setter
** v_identity.xml set new Id: id2 'My Name <me@personal.com>'
** v_identity.xml checkForVirtualIdentity: id2 'My Name <me@personal.com>'
## vI_identityData: isExistingIdentity: ignoreFullNameWhileComparing='false'
## vI_identityData: isExistingIdentity: My Name <me@work.com> found, id='id3'
## vI_msgIdentityCloneTools: signatureSwitch restore signature
 -- missing signatureSwitch extension?
** v_identity.xml smtp set to 'smtp1'

Note the "set new Id" line that says that it's incorrectly selecting my personal identity.

The problem seems to be related to the fact that when I upgraded from version 0.5.x to the 0.6 release candidate, I entered my work base address slightly differently (a lowercase letter where previously I had put a capital letter). By doing a global find/replace in virtualIdentity.rdf to make all occurrences of my work address identical, I seem to have made the problem go away. Nevertheless, the fact that the From: field can lie about which identity is being used is very troubling.

Change History (9)

comment:1 Changed 10 years ago by rene

Owner: set to rene
Status: newassigned

Hi,

sorry for your trouble with this extension, it's really a problem if in the case something goes wrong, the email will be send with a different identity. I will see if there is a general solution for such cases.

To understand what happend in your case I require some additional information. Please check the error-Console (see Tools Menu) for Error Messages while sending with the wrong identity. Additionally it will be good to get the matching entries from your virtualIdentity.rdf.

Thanks for your report,

nice regards, Rene

comment:2 Changed 10 years ago by rene

Resolution: wontfix
Status: assignedclosed

closing for now, please reopen and provide additional information if still relevant

comment:3 Changed 10 years ago by anonymous

Resolution: wontfix
Status: closedreopened
Version: 0.6.0rc80.6.0rc11

Nothing appears in the error console.

The entry in virtualIdentity looks like this:

  <RDF:Description RDF:about="http://virtual-id.absorb.it/vIStorage/email/Doe, John &lt;John.Doe@example.com&gt;"
                   NS1:email="My.Name@example.com"
                   NS1:fullName="My Name"
                   NS1:smtp="smtp1"
                   NS1:name="Doe, John &lt;John.Doe@example.com&gt;" />

The email address associated with my virtual ID is my.name@…, not My.Name@…. If I replace the capital letters with lowercase in virtualIdentity.rdf, the bug goes away.

As I said, the fact that it doesn't pick the right virtual ID is not necessarily a problem--it's my fault for not typing my address consistently. The troublesome part is that the From line displays one address, but the mail gets sent with a different one.

The bug persists in rc11.

comment:4 Changed 10 years ago by rene

Status: reopenednew

Hi,

actually the problem with sending some messages with a different identity than shown should have been fixed with [a2f823612759f4ee819efd]. This implements a final check of the identity and the one which is shown - mail only get's send if they match.

Can't see the reason of your problems yet, I have to ask you to provide some information again. Please post the complete trace from the moment you enter the recipients address until the message is send. To do this, run thunderbird from your terminal and check the output in the terminal (while debug-output is activated). If you can, do the same for the situation with the changed-case storage, when Virtual Identity works actually right.

Hope to get the problem solved than, Thanks and nice regards,

Rene

comment:5 Changed 10 years ago by anonymous

You mean check the box "show area with debug-informations" in Options->Debugging of the configuration dialog? I did that, quit thunderbird, ran it from the command line, and nothing appears on standard output.

Here are some more details on the observable behavior. When I first open the compose window, the From line shows the following information:

in the green field: "me@personal.com"
to the right of that, "id2 Mailprovider"
to the right of that, in a box, "Mailprovider SMTP"

I looked for these strings in prefs.js, and they come from the following settings:

user_pref("mail.identity.id2.useremail", "me@personal.com");
user_pref("mail.identity.id2.smtpServer", "smtp2");
user_pref("mail.account.account3.identities", "id2");
user_pref("mail.server.server3.name", "Mailprovider");
user_pref("mail.account.account3.server", "server3");
user_pref("mail.smtpserver.smtp2.description", "Mailprovider SMTP");

after I enter the address in the To: field and hit tab, the From line looks like this:

in the green: "My.Name@work.com"
to the right of that "id2"
in the box "worksmtp"

Note that the string "Mailprovider" (the value of mail.server.server3.name) disappeared and was not replaced with anything; the name of the smtp server associated with id2 is replaced with that of the one associated with id3; but the string "id2" remains.

comment:6 Changed 10 years ago by rene

Hi,

tried it on my machine and realized that you have to enable global debugging before the output gets dumped on the terminal. Go to the Thunderbird Preferences Dialog, Advanced Tab and choose "Config Editor" (watch out, thats not a place to play to much around :) ) Search for "browser.dom.window.dump.enabled" (filter like dump) and set the value to true (choose modify from the menu, after the test you can set it back to false or reset the setting).

Than you will get the output on the terminal, and you can see whats going on after you pressed the send-button (please provide the complete trace as mentioned above)

Nice regards, Rene

comment:7 Changed 10 years ago by anonymous

Version: 0.6.0rc110.6.1

Initially browser.dom.window.dump.enabled doesn't appear in the config editor. But I created it and set it to true, and that worked.

This time I'm sending email to my own work address, rather than to a colleague, so the mail is both from and to firstname.lastname@…. In the pathological case, the entry for my own address in virtualIdentity.rdf looks like this:

  <RDF:Description RDF:about="http://virtual-id.absorb.it/vIStorage/email/firstname.lastname@department.work.com"
                   NS1:email="Firstname.Lastname@department.work.com"
                   NS1:fullName="Firstname Lastname"
                   NS1:smtp="smtp1"
                   NS1:name="firstname.lastname@department.work.com" />

When I enter the address in the To: field and hit tab, the log says

## vI_storage: awOnBlur 'addressCol2#1'
## vI_storage: updateVIdentityFromStorage()
## vI_rdfDatasource: readVIdentityFromRDF found stored data.
## vI_rdfDatasource: email='Firstname.Lastname@department.work.com' fullName='Firstname Lastname' id='null' smtp='smtp1'
## vI_rdfDatasource: email='Firstname.Lastname@department.work.com' fullName='Firstname Lastname' id='null' smtp='smtp1'
## vI_rdfDatasource: extras:
## vI_rdfDatasource: findMatchingFilter for firstname.lastname@department.work.com.
## vI_rdfDatasource: findMatchingFilter with RegExp '/.work.com$/'
## vI_rdfDatasource: findMatchingFilter found stored data.
## vI_rdfDatasource: email='null' fullName='null' id='id3' smtp='null'
## vI_rdfDatasource: email='null' fullName='null' id='id3' smtp='vI_noStoredSMTP'
## vI_rdfDatasource: extras:
## vI_storage: compare with current Identity

** v_identity.xml msgIdentityCloneElem.doCommand() 
** v_identity.xml identityData setter
** v_identity.xml set new Id: id2 'Firstname Lastname <me@personal.com>'
** v_identity.xml checkForVirtualIdentity: id2 'Firstname Lastname <me@personal.com>'
## vI_identityData: isExistingIdentity: ignoreFullNameWhileComparing='false'
## vI_identityData: isExistingIdentity: Firstname Lastname <Firstname.Lastname@department.work.com> found, id='id3'
## vI_msgIdentityCloneTools: signatureSwitch restore signature
 -- missing signatureSwitch extension?
** v_identity.xml smtp set to 'smtp1'

Then when I hit send, it says

## v_identity: VIdentity_GenericSendMessage
## vI_storage: ----------------------------------------------------------
## vI_storage: storeVIdentityToAllRecipients()
## vI_storage: __updateStorageFromVIdentity.
## vI_storage: __updateStorageFromVIdentity dontUpdateMultipleNoEqual='false'
## vI_rdfDatasource: readVIdentityFromRDF found stored data.
## vI_rdfDatasource: email='Firstname.Lastname@department.work.com' fullName='Firstname Lastname' id='null' smtp='smtp1'
## vI_rdfDatasource: email='Firstname.Lastname@department.work.com' fullName='Firstname Lastname' id='null' smtp='smtp1'
## vI_rdfDatasource: extras:
## vI_rdfDatasource: findMatchingFilter for firstname.lastname@department.work.com.
## vI_rdfDatasource: findMatchingFilter with RegExp '/.work.com$/'
## vI_rdfDatasource: findMatchingFilter found stored data.
## vI_rdfDatasource: email='null' fullName='null' id='id3' smtp='null'
## vI_rdfDatasource: email='null' fullName='null' id='id3' smtp='vI_noStoredSMTP'
## vI_rdfDatasource: extras:
## vI_storage: ----------------------------------------------------------
deliver mode: 0
## vI_storage: clean.

Now for the normal case, where the entry in virtualIdentity.rdf has all lowercase letters in the NS1:email field. When I enter the To: address and hit tab it says

 ## vI_storage: awOnBlur 'addressCol2#1'
## vI_storage: updateVIdentityFromStorage()
## vI_rdfDatasource: readVIdentityFromRDF found stored data.
## vI_rdfDatasource: email='firstname.lastname@department.work.com' fullName='Firstname Lastname' id='null' smtp='smtp1'
## vI_rdfDatasource: email='firstname.lastname@department.work.com' fullName='Firstname Lastname' id='null' smtp='smtp1'
## vI_rdfDatasource: extras:
## vI_rdfDatasource: findMatchingFilter for firstname.lastname@department.work.com.
## vI_rdfDatasource: findMatchingFilter with RegExp '/.work.com$/'
## vI_rdfDatasource: findMatchingFilter found stored data.
## vI_rdfDatasource: email='null' fullName='null' id='id3' smtp='null'
## vI_rdfDatasource: email='null' fullName='null' id='id3' smtp='vI_noStoredSMTP'
## vI_rdfDatasource: extras:
## vI_storage: compare with current Identity

** v_identity.xml msgIdentityCloneElem.doCommand() 
** v_identity.xml identityData setter
** v_identity.xml checkForVirtualIdentity: id3 'Firstname Lastname <firstname.lastname@department.work.com>'
## vI_identityData: isExistingIdentity: ignoreFullNameWhileComparing='false'
## vI_identityData: isExistingIdentity: Firstname Lastname <firstname.lastname@department.work.com> found, id='id3'
## vI_msgIdentityCloneTools: signatureSwitch restore signature
 -- missing signatureSwitch extension?
** v_identity.xml smtp set to 'smtp1'

and when I hit send it says

## v_identity: VIdentity_GenericSendMessage
## vI_storage: ----------------------------------------------------------
## vI_storage: storeVIdentityToAllRecipients()
## vI_storage: __updateStorageFromVIdentity.
## vI_storage: __updateStorageFromVIdentity dontUpdateMultipleNoEqual='false'
## vI_rdfDatasource: readVIdentityFromRDF found stored data.
## vI_rdfDatasource: email='firstname.lastname@department.work.com' fullName='Firstname Lastname' id='null' smtp='smtp1'
## vI_rdfDatasource: email='firstname.lastname@department.work.com' fullName='Firstname Lastname' id='null' smtp='smtp1'
## vI_rdfDatasource: extras:
## vI_rdfDatasource: findMatchingFilter for firstname.lastname@department.work.com.
## vI_rdfDatasource: findMatchingFilter with RegExp '/.work.com$/'
## vI_rdfDatasource: findMatchingFilter found stored data.
## vI_rdfDatasource: email='null' fullName='null' id='id3' smtp='null'
## vI_rdfDatasource: email='null' fullName='null' id='id3' smtp='vI_noStoredSMTP'
## vI_rdfDatasource: extras:
## vI_storage: ----------------------------------------------------------
deliver mode: 0
## v_identity: StateListener reports ComposeProcessDone
## vI_storage: clean.
## vI_storage: clean.

comment:8 Changed 10 years ago by rene

Resolution: fixed
Status: newclosed

Hi,

thought I answered the ticket - but probably missed to submit my answer ? :(

Found the bug and repaired it with [c0e9d67a14dd9], there was a difference between comapring your new identity against any other pre-stored identity and against any other virtual identity. In the end the whole thing went wrong and you didn't send the email with any virtual identity at all - it just used existing real identities. To prevent problems in this case, I changed the final check before sending to be executed even if the email is not sended with a virtual Identits [c99b142056b4].

All this is included in 0.6.2, please check if this fixes your problem and reopen the ticket if not.

Thanks for you debug-logs and nice regards,

Rene

comment:9 Changed 10 years ago by anonymous

I confirm that the problem is fixed in 0.6.3. Thanks.

Note: See TracTickets for help on using tickets.