In Offline mode, message sent via MAPISendMail will not save the unsent mail in Outbox (Unsent Messages)

RESOLVED FIXED in Thunderbird 14.0


MailNews Core
Simple MAPI
12 years ago
6 years ago


(Reporter: Dirk Lausecker, Assigned: standard8)



Thunderbird 14.0
Windows 2000

Thunderbird Tracking Flags

(thunderbird12 fixed, thunderbird13 fixed, thunderbird-esr1012+ fixed)



(1 attachment, 1 obsolete attachment)



12 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.7.6) Gecko/20050226 Firefox/1.0.1
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.7.6) Gecko/20050226 Firefox/1.0.1

My software use the function MAPISendMail() to save E-Mails in the "Unsent
Messages" folder. This works fine with Netscape Messenger 4.75 and NSMAPI32.DLL.
On Thunderbird 1.0 (german) the message will be sent immediatly if the
Mailclient is in the Online mode. But in the Offline mode, the message will not
saved under "Unsent Messages".

Reproducible: Always

Steps to Reproduce:
1.Write a test program which calls MAPISendMail with the following params:
0L,         // use implicit session.
0L,         // ulUIParam; 0 is always valid
&message,   // the message being sent
0,	    // no MAPI_DIALOG
0L          // reserved; must be 0

2. Start Thunderbird and activate Offline mode.
3. Start test software and check the "Unsent Messages" folder.

Actual Results:  
The test message will not be show under "Unsent Messages" or elsewhere.
The MAPISendMail function returns no error code (0), but nothing is happen.

Expected Results:  
The message must be saved under "Unsent Messages".


12 years ago
Keywords: 4xp
This is an automated message, with ID "auto-resolve01".

This bug has had no comments for a long time. Statistically, we have found that
bug reports that have not been confirmed by a second user after three months are
highly unlikely to be the source of a fix to the code.

While your input is very important to us, our resources are limited and so we
are asking for your help in focussing our efforts. If you can still reproduce
this problem in the latest version of the product (see below for how to obtain a
copy) or, for feature requests, if it's not present in the latest version and
you still believe we should implement it, please visit the URL of this bug
(given at the top of this mail) and add a comment to that effect, giving more
reproduction information if you have it.

If it is not a problem any longer, you need take no action. If this bug is not
changed in any way in the next two weeks, it will be automatically resolved.
Thank you for your help in this matter.

The latest beta releases can be obtained from:

Comment 2

10 years ago
I have test on Thunderbird The bug is still present. If Thunderbird is in offline mode, the mails will not be saved as unsent mail. 
Severity: major → critical
Keywords: dataloss
QA Contact: simple-mapi
Product: Core → MailNews Core
Dirk, I

I'll confirm this based on your expertise, but I'd prefer to know it still fails for trunk. Can you try an early release of TB3 ? 
(taking appropriate precautions to protect yourself of course)

even better ... Dirk, can you attach a test program?

Comment 5

9 years ago
Hello Wayne,

Thank you for your interest on this bug.
I have retested an early release of the 3.0 version. (German version with the name "Shredder"). But the bug still exist :-|
I can't upload my test program to this public forum. But if you're interested, I could send it to you as private mail. Its a tiny program, but have a big runtime environment which must be installed (Win 2000/XP). We must transfer about 10 MB.
Let me know if you're interested.

Best regards

confirmed using Dirk's program. when offline, message isn't saved for later sending.

unsent messages has been renamed outbox, so modding summary
Ever confirmed: true
Summary: In Offline mode, MAPISendMail will not save the mail in Unsent Messages → In Offline mode, message sent via MAPISendMail will not save the unsent mail in Outbox (Unsent Messages)

Comment 7

6 years ago
Created attachment 610176 [details] [diff] [review]
The fix

The error here is quite simple, we're not checking to see if we're in offline mode or not.

Really that's probably the fault of the message send code, but that feels a bit complicated to fix here, and if in future we complete the send in background, then that would eliminate the online/offline issue anyway.

Hence I'm just going for the simple fix of keeping online mode sending as it is, and in offline mode, we'll queue them for later.

Try server build is here:

I haven't actually tested the patch myself as I couldn't find a set up to do that with.
Assignee: nobody → mbanner
Attachment #610176 - Flags: review?(dbienvenu)

Comment 8

6 years ago
Comment on attachment 610176 [details] [diff] [review]
The fix

does it compile if you use WeAreOffline() instead of the ioservice? If so, I'd prefer that.

Comment 9

6 years ago
Created attachment 611746 [details] [diff] [review]
The fix v2

Using WeAreOffline()
Attachment #610176 - Attachment is obsolete: true
Attachment #610176 - Flags: review?(dbienvenu)
Attachment #611746 - Flags: review?(dbienvenu)


6 years ago
Attachment #611746 - Flags: review?(dbienvenu) → review+

Comment 10

6 years ago
Comment on attachment 611746 [details] [diff] [review]
The fix v2

[Triage Comment]
We decided this is low risk enough to take to branches and we'll ship it on the esr branch.
Attachment #611746 - Flags: approval-comm-beta+
Attachment #611746 - Flags: approval-comm-aurora+


6 years ago
tracking-thunderbird-esr10: --- → 12+

Comment 11

6 years ago
Checked in:
Last Resolved: 6 years ago
status-thunderbird12: --- → fixed
status-thunderbird13: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 14.0

Comment 12

6 years ago

Comment 13

6 years ago
Comment on attachment 611746 [details] [diff] [review]
The fix v2

[Triage Comment]
Attachment #611746 - Flags: approval-comm-esr10+

Comment 14

6 years ago
Fixed for ESR:
status-thunderbird-esr10: --- → fixed
You need to log in before you can comment on or make changes to this bug.