To get this running go to Macros, get into the VBA editor, then go to Project1 > Microsoft Office Outlook Objects > ThisOutlookSession and add the following before saving.
Private Sub Application_Quit() If MsgBox("Did you really mean to close Outlook?", vbYesNo, "Outlook has closed") = vbNo Then Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim oFile As Object Set oFile = fso.CreateTextFile("c:\windows\temp\outlook.bat") oFile.WriteLine "ping 126.96.36.199 -n 1" oFile.WriteLine "start outlook.exe" oFile.Close Set fso = Nothing Set oFile = Nothing Call Shell("c:\windows\temp\outlook.bat") End If End Sub
All that's doing is giving the application a few seconds to close before relaunching. This won't stop Outlook from closing any message windows you had open for reading before it reaches the quit event, and unfortunately there's no way (certainly in 2007, 2010, etc) to intercept and block the event. There are one or two additional-software-required solutions to have Outlook not close, including a free one it might be worth looking at, but the above is an option in more environments.
Speaking of which, the common approach of delaying the sending of an external message and leaving it in your Outbox only works with Cached Exchange Mode, which doesn't fit well in offices where users might use several devices, and there are some other considerations that may need to be made.