Importing .pst into Thunderbird removes addresses in "Sent" folder
A month ago, I decided to give Thunderbird a try as my email client coming from MS Outlook.
I used the import functionality to import my from my Outlook installation's .pst files.
Everything seemed to work and I have been using Thunderbird for a month now.
Today however, I required to look up past sent emails. The Sent folder is there. It imported and the messages are there. Unfortunately the "From" and "To" fields have had their email addresses replaced with just the person's name. This is not consistent but is true perhaps 80% of the time.
The From field of course just has my name The sent field in most cases only has the recipient's name, though there is the rare email that does show the email address.
Is there a method to correct this?
Thanks in advance.
所有回覆 (15)
Try turning off the option to "show only display name for people in my address book". In Settings on the menu.
Thunderbird displays what you call folks in your address book display name in all lists by default. Be it grumpy boss or girlfriend. Turning the option off returns to the display that the sender used if it is a reply or incoming mail.
edit: My mistake, I thought this was an instruction for an option upon importing.
I have turned this option off and the Messages in my Sent folder still only contain names and not email addresses (at least most of them).
This makes it impossible to continue chains or look up the address of people you have sent messages to in the past.
clicking on " replay all" for example just places text names in the send fields with a red exclamation mark.
It appears these addresses are stripped during the import process, but it is strange they are only stripped on Sent messages.
由 fwilson00 於
The issue seems to be that the import algorithm is not properly handling the case where Outlook has placed a default Show As name for the recipient.
Does anyone know a workaround, or can you point me to where this is being accomplished in code and perhaps I can take a crack at fixing it.
由 fwilson00 於
Matt said
Try turning off the option to "show only display name for people in my address book". In Settings on the menu. Thunderbird displays what you call folks in your address book display name in all lists by default. Be it grumpy boss or girlfriend. Turning the option off returns to the display that the sender used if it is a reply or incoming mail.
This has no effect. The issue lies in the import algorithm
fwilson00 said
Matt said
Try turning off the option to "show only display name for people in my address book". In Settings on the menu. Thunderbird displays what you call folks in your address book display name in all lists by default. Be it grumpy boss or girlfriend. Turning the option off returns to the display that the sender used if it is a reply or incoming mail.This has no effect. The issue lies in the import algorithm
Except there is no algorithm. Thunderbird asks Outlook nicely (hence the need for it to be installed and working) to the data/Details. If it is missing, are you sure it is in the outlook file your are importing. Given Outlook does not store an email as an email, but as a series of data segments all over the PST, I would not be surprised at all if outlook simply does not offer the data up.
Have to checked the to: in the message source (Ctrl+U) in Thunderbird. I would also suggest you check in the outlook program as well for the same data. It would not surprise me at all if Outlook did not store full email addresses for folk on an internal network for instance.
I have not used a copy of outlook for perhaps 15 years. So I am working from memory, old memory at that. I stopped using it because it was fundamentally broken as an internet mail client, being specialized for use with Microsoft Exchange mail servers, around the same time the century changed.
Matt said
fwilson00 said
Matt said
Try turning off the option to "show only display name for people in my address book". In Settings on the menu. Thunderbird displays what you call folks in your address book display name in all lists by default. Be it grumpy boss or girlfriend. Turning the option off returns to the display that the sender used if it is a reply or incoming mail.This has no effect. The issue lies in the import algorithm
Except there is no algorithm. Thunderbird asks Outlook nicely (hence the need for it to be installed and working) to the data/Details. If it is missing, are you sure it is in the outlook file your are importing. Given Outlook does not store an email as an email, but as a series of data segments all over the PST, I would not be surprised at all if outlook simply does not offer the data up.
Have to checked the to: in the message source (Ctrl+U) in Thunderbird. I would also suggest you check in the outlook program as well for the same data. It would not surprise me at all if Outlook did not store full email addresses for folk on an internal network for instance.
I have not used a copy of outlook for perhaps 15 years. So I am working from memory, old memory at that. I stopped using it because it was fundamentally broken as an internet mail client, being specialized for use with Microsoft Exchange mail servers, around the same time the century changed.
But it does ask Outlook for specific information (hence an algorithm!). In this case, it is asking incorrectly. (thus the request for where in code to look to correct this). It is obviously not where Thunderbird thinks it is and is thus asking incorrectly. One may Reply All to these messages in Outlook and thus the information IS there. Outlook will offer most everything up if asked nicely AND properly.
The addresses are not for internal network recipients, and do not show up in the header once in Thunderbird. They do not display in the "To:" field in Outlook, as Outlook displays recipients' names in a recipients' collection. There are properties of the items in this collection to denote which are "To" and which are "cc". This is what needs queried from Outlook in order to properly obtain this information.
由 fwilson00 於
You say this is a problem in just one folder - 'Sent'. Can we assume there was no problem when importing any other folder?
In 'Sent' email: Some emails have the TO email address Select that email so it shows in Message Pane click on 'More' and select 'View Source' in the headers what is shown in the TO ?
Then perform same check on an email which only has a display name in the TO Is the email address showing in the 'View Source' TO entry or does it really just display the name ?
What do you notice is the difference in the 'View Source' TO header entry in those two emails?
Perform a check to test what is stored in Address Book.
For a contact which is not displaying email address - only a name in TO. In 'TO' header - Is the circular person icon on the right of that name a blue colour ? If yes, click on that TO name and select 'Edit Contact' Notice the 'Address Book' name Click on 'Edit Details' Address Book opens and displays contact data. Is there a correct email address in the Email Address field?
Is the email address stored correctly in another location like 'Last Name' ? If email address is not stored in correct location and you imported that address book, then it looks like you did not map the imported fields to the Thunderbird address book fields or mapped them incorrectly.
Toad-Hall said
You say this is a problem in just one folder - 'Sent'. Can we assume there was no problem when importing any other folder? In 'Sent' email: Some emails have the TO email address Select that email so it shows in Message Pane click on 'More' and select 'View Source' in the headers what is shown in the TO ? Then perform same check on an email which only has a display name in the TO Is the email address showing in the 'View Source' TO entry or does it really just display the name ? What do you notice is the difference in the 'View Source' TO header entry in those two emails?
I should be more precise in my language. My email are located in Outlook in a few different .pst files. Each has their own version of a "Sent" folder. There is also one other folder used for a specific mailing list that I want to keep their Sent messages separate and have thus copied the messages I have sent to them from the general "Sent" folder to a specific one. Regardless of the folder that houses the message, any message I sent from Outlook exhibits the behavior of not displaying the email address of the recipient. (These just happen to be, in my email filing, in "Sent" folders.)
For any item that represents a received email, the import seems to have worked fine.
Looking at the TO in the headers of the various messages, I get the same thing as shown in the TO field in Outlook and in Thunderbird. The human-friendly version of the recipient enclosed in apostrophes.
In the few that it shows the "email address", it is still the "user friendly" version of the email address enclosed in apostrophes.
Thus while a message sent from within Thunderbird shows this in the header TO (modified for privacy):
To: Al Adams <[email protected]>
A header from a message that was sent in Outlook and imported shows this:
To: 'Al Adams' or To: '[email protected]'
This matches the To field in Outlook. The To field in Outlook however does not contain the recipients of a sent message, the recipients collection does.
Toad-Hall said
Perform a check to test what is stored in Address Book. For a contact which is not displaying email address - only a name in TO. In 'TO' header - Is the circular person icon on the right of that name a blue colour ? If yes, click on that TO name and select 'Edit Contact' Notice the 'Address Book' name Click on 'Edit Details' Address Book opens and displays contact data. Is there a correct email address in the Email Address field? Is the email address stored correctly in another location like 'Last Name' ? If email address is not stored in correct location and you imported that address book, then it looks like you did not map the imported fields to the Thunderbird address book fields or mapped them incorrectly.
I seldom ever use an address book, and my address book contains only a few entries.
There is no circular person icon next to these TO: entries. (unlike messages sent from within Thunderbird which show blue of a member of the address book and gray if not.)
It appears Thunderbird imported the To field of each mail item, but that is not where the recipients are stored in Outlook for sent messages.
由 fwilson00 於
I've just been reading up a load of stuff on Outlook and it's weirdness regarding sent emails. The reason you are not seeing the email address is because Outlook did not include it in the saved copy. That was a deliberate move by Outlook. There are several comments in various forums etc on the internet about this problem. It's Outlook being a pain and there are a lot of complaints which have been ongoing for years. It will provide if used on Exchange - as Matt mentioned. These complaints are by those using Outlook.
So, basically, if the saved copy has been edited by Outlook to not include what you or I would consider as vital data eg: TO email address then exporting those edited copies will show incomplete data when imported into other third party email clients. Thunderbird cannot display something that Outlook itself has not stored in their sent copies.
eg: I support an academic environment where users are constantly engaging in communications with mixed groups of external/internal addresses, including forwarding emails to users outside of the exchange environment. As this "feature" removes actual addresses from these messages, there was always confusion and communication issues when attempting to connect with new contacts.
There is no way to change that. Internal addresses simply do not show as (in general) they are not needed as addressing the email by name would suffice since Exchange resolves them. Intermediate address of internal user may need to external end-usesr of correspondence. It is stupid bug.
Redirecting the email from the Outlook Exchange account will keep a copy of the email in your inbox still, and will cause a second copy of the original email, in its original form upon leaving the Sender's mailbox, to the other account of your choosing. When you look at the header information, you get the name of the Sender along with their full email address, if they are not in your Exchange group. And if you look at the To: field, you can see which email address the email was originally sent it. It seems that this feature solves the issues with losing the email To: and From: addresses upon forwarding. However it does not solve the problem of Exchange addresses not showing the full email address.
As far as I can tell the only way around this in Outlook , would be to set up the contact 'display name' to include the email address. Then at least the data would be available even if you just needed it for copying to another address book.
Sorry. But I do not see a fix for this. Outlook failed to save the data in the email that was sent.
Hmm, I do not think you are understanding this issue. This is not an issue of non-fully-formed email addresses as can be seen inside organizations. The "TO" addresses are available in Outlook, just not where Thunderbird is looking. This is evidenced by the fact I can create a column to display the email addresses of the recipients in the Sent folder in Outlook. This is the code to so. I have tested it. It works.
https://www.slipstick.com/developer/recipient-email-address-sent-items/
It appears Thunderbird is querying the "to" field of each message item. Outlook is dutifully providing it. It should instead be querying the recipients collection (as the code above does).
This could most easily be confirmed if someone familiar with the codebase could point me to the section where this is done.
re :It appears Thunderbird is querying the "to" field of each message item.
Correct because that is where it should be.
re: Outlook is dutifully providing it.
Outlook program has it's own code to know where to find it and it's to do with 'exchange'. But it is not in the saved email. Outlook deliberately do not save it - they remove it automatically for no good reason other than it makes it a problem if you want to leave Outlook.
re :This is the code to so. I have tested it. It works.
You need to use that code in Outlook to get around the code which Outlook uses. It's a known workaround fix in Outlook.
I'm aware that you have imported outlook emails, but I'm not sure if you have set up an imap mail account to same email address. It sounds like you were using exchange.
I've been trying to find a way to trick Outlook to properly store the TO header email addresses in those 'Sent Items' so you can get a better import to Thunderbird and I've got an idea which I'm asking you to try.
Could you please try the following as it might be a workaround: in Outlook program, move all items from 'Sent Items' folder into a newly created temporary folder called eg: 'Old Sent' Does this process force Outlook which is using exchange to put the TO headers back into all those moved 'Old Sent' emails? Just like it does with all other folders except 'Sent Items'.
If yes then..... If done on an IMAP4 mail server then you can hook up to it using an imap account. Otherwise then try to import that 'Old Sent' and see if the emails imported into Thunderbird now display the TO field.
If you do have imap account for that email address in Thunderbird Subscribe to see 'Old Sent' Copy all the 'Old Sent' emails in that 'Old Sent' folder on the IMAP server into your 'Sent Items' folder.
Does this now mean your sent items have the users full name and the email address?
Toad-Hall said
re :It appears Thunderbird is querying the "to" field of each message item. Correct because that is where it should be.
"Should" is a relative term when creating an import routine. What an import routine "should" do is interface with the program it is importing from in the manner it can speak.
re: Outlook is dutifully providing it.
Outlook program has it's own code to know where to find it and it's to do with 'exchange'. But it is not in the saved email. Outlook deliberately do not save it - they remove it automatically for no good reason other than it makes it a problem if you want to leave Outlook.
I have never used an Exchange server. I use Outlook as an email aggregator and have for decades. Outlook does not have "saved emails". They have a .pst message store which contains information about the email items. In that message store is indeed the information about who the recipients are.
Are you stating the import routine pulls out messages header and all and then, somehow parses the message to get the information needed? This would be a fairly inefficient and error prone way to accomplish this task. After a brief look at the code, it looks like MAPI calls are being used to expose information about the messages/folder structure, etc. (The folder structure would not be in each individual email either). I haven't found the exact place in code where the TO field of each message is queried, but that would be the place to query the recipients collection. Assuming this is done with a MAPI call and not through some arcane text parsing of the email message, it is the replacement of one MAPI call with another. (and probably a bit of formatting to handle multiple recipients and correctly place the TO and CC fields)
Likely Outlook stores the information in this manner as it is an efficient object oriented approach to the data storage.
re :This is the code to so. I have tested it. It works. You need to use that code in Outlook to get around the code which Outlook uses. It's a known workaround fix in Outlook. I'm aware that you have imported outlook emails, but I'm not sure if you have set up an imap mail account to same email address. It sounds like you were using exchange.
I don't use imap. I'm an old pop3 guy. I have never used Exchange.
I've been trying to find a way to trick Outlook to properly store the TO header email addresses in those 'Sent Items' so you can get a better import to Thunderbird and I've got an idea which I'm asking you to try. Could you please try the following as it might be a workaround: in Outlook program, move all items from 'Sent Items' folder into a newly created temporary folder called eg: 'Old Sent' Does this process force Outlook which is using exchange to put the TO headers back into all those moved 'Old Sent' emails? Just like it does with all other folders except 'Sent Items'.
It does not. It is not the folder that determines the storage format. If it was a mail sent from Outlook, its TO information is stored in a recipients collection. I have folders where I keep sent emails to a specific organization (that have been copied over from the Sent folder, as well as a folder that I have changed the named from Sent to Archived-Sent. They exhibit the same behavior when imported into Thunderbird.
Appreciate the help on brainstorming, but messages in Outlook are stored in objects serialized in a .pst file. For Sent messages, the object storing the "To" information is a recipients collection. I think updating that code to ask Outlook for that information is the likely best route to take.