<< A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

–A–

“A program is trying to automatically send e-mail on your behalf.  Do you want to allow this?  If this is unexpected, it may be a virus and you should choose ‘No’” – see program is trying to automatically send e-mail on your behalf

ACT, convert to

account , can’t add – is it an Exchange account?  Other users working just fine but can’t add an existing user to Outlook? Make sure the "Microsoft Exchange System Attendant" service on the Exchange server is running!  Even though it's "automatic", it often doesn't start when you start/restart the server.  When it's not running, previously created Outlook profiles will work just fine.  But good luck creating a new one.  POP accounts work just fine.  But not new Exchange connections from Outlook.

Addins – Tools, Options, Other, Advanced Options

ldvp – Symantec antivirus – normally you want this one

add-in 'C:\Program Files\NavNT\vpmsece.dll' could not be installed or loaded. This problem may be resolved by using Detect and Repair on the Help menu. Unable to load "C:\Program Files\NavNT\vpmsece.dll". You may be out of memory, out of system resources, or missing a .dll file.  Using the Detect and Repair option, as suggested in the error message, does not solve the problem. – delete C:\Documents and Settings\%Username%\Local Settings\Application Data\Microsoft\Outlook\Extend.dat and delete the file.  Extend.dat will be recreated the next time you open Outlook, and the Exchange plug-in will be installed when the first email is opened.

address list missing

  1. None of the contacts show up – (Google search results) - Tools/Email Accounts/View or change existing directories or address books/delete “Outlook Address Book”.  Before you add it, highlight “Contacts”, right click to get properties, Click the “Outlook Address Book” tab/click “Show this folder as an e-mail Address Book”.  NOW, Add it again.
  2. Only subdirectories don’t show up – highlight the subdirectory, right click, select properties.  Click the “Outlook Address Book” tab/click “Show this folder as an e-mail Address Book”.

attachments, can't open - see exe attachments, can't open

Outlook express attachments - Tools->options->Security-> uncheck the option to block potentially unsafe attachments (This doesn’t work if the attachment is a contact.  For that, I had to convert to Outlook XP)

attachments, can’t see – sometimes you get an incoming email where you see the paperclip but you don’t see the attachment in outlook.  If you can, open in OWA.  That is, if you have Exchange and can look at your email using a web browser, do that.  Sometimes you can view the attachment in OWA.  If that’s the case, you might have a “malformed” header.  Well, “malformed” as far as Outlook is concerned; often other email clients or web-based email systems can read it just fine if you forward to them.  In Outlook 2003, you used to be able to add a key at HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Options\Mail:

Value name: SaveAllMIMENotJustHeaders
Value type: REG_DWORD
Value data: 1)

For Outlook 2010, that’d be 14.0, not 12.0.  But there is no “Mail” section under “Options” for 2010.  To view headers in 2010, open the message, go to File, Properties.  The Header will be at the bottom of the window that pops up.

Attachments, extract emails in a directory that have an attachment to a local folder - see Save E-mail attachments to folder

Attachments, extract fields buried in binary attachments and save them to an Excel spreadsheet.  One use for this is when someone forwards a bunch of Quask forms.  Although the attachments to the forms themselves aren’t binary, if someone forwards a bunch of them in one email, then each of the original attachments ends up being binary and you have to dig out the ASCII stuff out of them.  Note that for this to work you need to add the Excel library.

Sub SaveLeadsToExcel()
    On Error GoTo SaveLeadsToExcel_err
    Dim ns As Outlook.NameSpace
    Dim Inbox As Outlook.MAPIFolder
    Dim Item As Object
    Dim Atmt As Attachment
    Dim FileName As String
    Dim i, j As Integer
    Dim intWhereWeFoundFirstField As Integer
    Dim strMsg
    Dim iFileNum As Double
    Dim btAR() As Byte
    Dim strPathToSaveFileTo As String
    strPathToSaveFileTo = "c:\data\"
 
    Dim oExcel As Excel.Application
    Dim oWB As Excel.Workbook
    Dim oWS As Excel.Worksheet
    ReDim strRange(3) As String
 
    ReDim strFieldID(3) As String
    strFieldID(1) = """6"""
    strFieldID(2) = """8"""
    strFieldID(3) = """10"""
   
    ReDim strFieldName(3) As String
    strFieldName(1) = "Name"
    strFieldName(2) = "Phone"
    strFieldName(3) = "email"
 
    ReDim strFieldValue(3) As String
   
    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
 
    i = 0   ' # emails with attachments
 
   If Inbox.Items.Count = 0 Then
        MsgBox "There are no messages in the Inbox.", vbInformation, _
               "Nothing Found"
        Exit Sub
    Else
        Set oExcel = New Excel.Application

        oExcel.Visible = True ' <-- *** Optional ***
        Set oWS = oExcel.ActiveSheet
        Set oWB = oExcel.Workbooks.Add
        Set oWS = oWB.Worksheets("Sheet1")
        oWS.Range("A1").Value = "Name"
        oWS.Range("B1").Value = "Phone"
        oWS.Range("C1").Value = "email"
        oExcel.DisplayAlerts = False
 
        For Each Item In Inbox.Items
            For Each Atmt In Item.Attachments
                FileName = strPathToSaveFileTo & Atmt.FileName & i
                Atmt.SaveAsFile(FileName)
                iFileNum = FreeFile()
                ReDim btAR(1 To FileLen(FileName))
                Open FileName For Binary Access Read As #iFileNum
                Get #iFileNum, 1, btAR()
                Close(iFileNum)
                strMsg = Stream_BinaryToString(btAR(), "us-ascii")
                For j = 1 To 3
                      intWhereWeFoundFirstField = InStr(strMsg, "<field id=" & strFieldID(j) & ">")
                      If intWhereWeFoundFirstField <> 0 Then
                        y = Mid(strMsg, InStr(strMsg, "<field id=" & strFieldID(j) & ">") + Len(strFieldID(j)) + 11)
                        strFieldValue(j) = Left(y, InStr(y, "</field>") - 1)
                        strFieldValue(j) = Excel.WorksheetFunction.Clean(strFieldValue(j))
                        oWS.Cells(i + 2, j).Formula = strFieldValue(j)
                      End If
                Next
                i = i + 1
            Next Atmt
        Next Item
        oWS.Range("A1:D1").Font.Bold = True
        oWS.Range("A:C").Columns.AutoFit
    oWB.SaveAs (strPathToSaveFileTo & "leads for " & Format(Date, "yyyymmdd ") & Format(Time, "hh.mm.ss") & ".xls")
        oWB.Close
        oExcel.Quit
    End If
 
SaveLeadsToExcel_exit:
    Set Atmt = Nothing
    Set Item = Nothing
    Set NS = Nothing
    Set oWS = Nothing
    Set oWB = Nothing
    Set oExcel = Nothing
    Exit Sub
 
SaveLeadsToExcel_err:
    MsgBox "An unexpected error has occurred." _
       & vbCrLf & "Please note and report the following information." _
       & vbCrLf & "Macro Name: SaveLeadsToExcel " _
       & vbCrLf & "Error Number: " & Err.Number _
       & vbCrLf & "Error Description: " & Err.Description _
       , vbCritical, "Error!"
    Resume SaveLeadsToExcel_exit
    End Sub

Which needs:

'Stream_BinaryToString Function -3rd method described here (http://www.motobit.com/tips/detpg_binarytostring/)
'2003 Antonin Foller, http://www.motobit.com
'Binary - VT_UI1 | VT_ARRAY data To convert To a string
'CharSet - charset of the source binary data - default is "us-ascii"
    Function Stream_BinaryToString(Binary, CharSet)
       Const adTypeText = 2
       Const adTypeBinary = 1
 
      'Create Stream object

       Dim BinaryStream 'As New Stream
       Set BinaryStream = CreateObject("ADODB.Stream")
 
       'Specify stream type - we want To save text/string data.
       BinaryStream.Type = adTypeBinary
 
       'Open the stream And write text/string data To the object
       BinaryStream.Open '()
       BinaryStream.Write(Binary)
 

       'Change stream type To binary
       BinaryStream.Position = 0
       BinaryStream.Type = adTypeText

 

       'Specify charset For the source text (unicode) data.
       If Len(
CharSet) > 0 Then
        BinaryStream.CharSet = CharSet
       Else
        BinaryStream.CharSet = "us-ascii"
       End If
 
       'Open the stream And get binary data from the object
       Stream_BinaryToString = BinaryStream.ReadText
   End Function

attachments, in body or on separate line – For HTML and plain text, attachments show as separate line; for rich text, attachments show up in the body

autofill for email address, add – from here

Outlook's autocomplete feature attempts to be helpful by suggesting email names similar to what you're typing. A couple of keystrokes, an autocomplete suggestion, and you don't have to type the entire email name every time. Seems both simple and handy.  Unfortunately it's not quite simple, and it can be both handy and frustrating because email names you expect to be present aren't, and those that you never want to look at again keep popping up.

Auto-complete suggestions come from something called the nickname list and your address book. Usually.

The nickname list is something the Outlook builds over time as you send and receive email. Essentially it collects all the email addresses that you've sent email to as they've appeared in the To, Cc or Bcc fields. That's Outlook's first source of autocomplete suggestions (C:\Documents and Settings\<user>\Application Data\Microsoft\Outlook\OUTLOOK.NK2).

Outlook also appears to sometimes take suggestions from your address book. It's unclear exactly when it decides to, or rather when it decides not to. It might be related to how many suggestions it was able to find in the nickname list. Regardless, what's important is that entries in your address book are not always presented.

It's frustrating to type the first few characters of someone's name knowing that they're in your address book, but they don't show.

There is a solution.

Press CTRL+K.

Ctrl+K is a shortcut for the "Check Names" button, also on the toolbar when you're composing a message. Check names will look at the characters you've typed so far and compare them to your address book entries. If there's only one match it completes the entry. If there's more than one match then it presents a list for you to choose from. And the list will not include items from the nickname list. But the name you just entered will get added to the nickname list so the next time you use it, it should be there.

The nickname list that outlook maintains can occasionally become corrupt. To repair it or to reset it completely Microsoft has provided this knowledgebase article.

A WAY TO ADD EMAIL ADDRESSES TO THE AUTOCOMPLETE LIST: Using the calendar function within Outlook, schedule a meeting and invite others to the meeting. Once you send this meeting request, all invitees will be added to your autocomplete list!

Handy freeware for working with .NK2 files

autofill for email address, get rid of entry -

pen a new message and begin typing in the address. Use the up and down arrow keys to select the address to be removed from the addresses suggested. When the address to be removed is highlighted, hit the Delete key

To remove all the saved addresses, delete the .nk2 file where Outlook stores them

autofill for email address, in which file are autofill entries stored? – C:\Documents and Settings\<user>\Application Data\Microsoft\Outlook\OUTLOOK.NK2

autofill for email address, restore – Rebuild Outlook Autocomplete CacheRebuild Outlook Autocomplete Cache tool – auto complete cache is a collection from all the recipients in the e-mails you have send out

Auto Message Creation

  1. Create a message in a new message window
  2. Type in the message you want to always be filled in into this new message window
  3. Select this text.
  4. Go to a Insert-> Auto Text ->New
  5. Type a name for the message a click on OK

Now, when you start typing this text in any subsequent messages, it’ll show up as a choice

autotext – now called QuickParts in Outlook 2007

autotext, how to move from machine to machine.  Need to move Word’s normal.dot.  And where, pray tell, do we find that particular file?  Open Word | Tools | Options | File Locations tab | User templates

–B–

back Up Outlook Data Files (Personal Folders (.pst) File)

  1. On the File menu, click Import and Export.
  2. Click Export to a file, and then click Next.
  3. Under Create a file of type, click Personal Folder File (.pst), and then click Next.
  4. Click the folder that you want to back up, click to select the Include subfolders check box, and then click Next.
  5. Under Saved exported file as, type the complete path and file name for the location to which you want to back up the file. Under Options, select the option that you want, and then click Finish.

bounces, extract email addresses from a folder containing bounced email messages – using regular expressions

Sub SaveBounceExcel()
    On Error GoTo SaveLifeBlastExcel_err
    Const EndSymbol = vbCrLf
    Dim ns As Outlook.NameSpace
    Dim Inbox As Outlook.MAPIFolder
    Dim Item As Object
    Dim FileName As String
    Dim i, j As Integer
    Dim intWhereWeFindThisField As Integer
 
    Dim strMsg
    ' try to find an email
    Dim myRegex As String
    myRegex = "[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2 ,6}"
    Dim RE As Object, REMatches As Object
    RE = CreateObject("vbscript.regexp")
 
    With RE
        .MultiLine = False
        .Global = False
        .IgnoreCase = True
        .Pattern = myRegex
    End With
 
    Dim iFileNum As Double
    Dim btAR() As Byte
    Dim strPathToSaveFileTo As String
    strPathToSaveFileTo = "c:\data\"
 
    Dim oExcel As Excel.Application
    Dim oWB As Excel.Workbook
    Dim oWS As Excel.Worksheet
    ReDim strRange(8) As String
 
    ReDim strFieldName(3) As String
    strFieldName(1) = "whereFrom"
    strFieldName(2) = "email"
    strFieldName(3) = "body"
 
    ReDim strFieldValue(2) As String
 
    ns = GetNamespace("MAPI")
    objFolder = ns.GetDefaultFolder(olFolderInbox)
    strFolderName = objFolder.Parent
    objMailbox = ns.Folders(strFolderName)
 
    Inbox = objMailbox.Folders("MaheshBounce")
 
    i = 0   ' # emails
 
    If Inbox.Items.Count = 0 Then
        MsgBox("There are no messages in the Inbox.", vbInformation, _
               "Nothing Found")
        Exit Sub
    Else
        oExcel = New Excel.Application
        oExcel.Visible = True ' <-- *** Optional ***
        oWS = oExcel.ActiveSheet
        oWB = oExcel.Workbooks.Add
        oWS = oWB.Worksheets("Sheet1")
        oWS.Range("A1").Value = strFieldName(1)
        oWS.Range("B1").Value = strFieldName(2)
        oWS.Range("B1").Value = strFieldName(3)
        oExcel.DisplayAlerts = False
 
        For Each Item In Inbox.Items
            'ReceivedDate = Item.ReceivedTime
            strMsg = Item.Body
            ' First try to find the email in the body.  This is where it'll
            ' most likely be if some agent like postmaster rejected it.
            ' Sometimes the user himself will send a reply and have his email
            ' in the body and this will catch those, as well.
            REMatches = RE.Execute(strMsg)
            If REMatches.Count > 0 Then
                oWS.Cells(i + 2, 1).Formula = "body"
                strFieldValue(2) = REMatches(0)
            Else
            ' Otherwise, if you can't find something that looks like an email
            ' in the body, then it's probably just the guy saying
            ' he's on vacation or out of the office or the like
                oWS.Cells(i + 2, 1).Formula = "direct from sender"
                'strFieldValue(2) = Item.SenderName
                strFieldValue(2) = Item.SenderEmailAddress
            End If
            oWS.Cells(i + 2, 2).Formula = strFieldValue(2)
            oWS.Cells(i + 2, 3).Formula = Item.Body
            i = i + 1
        Next Item            oWS.Range("A1:I1").Font.Bold = True
        oWS.Range("A:I").Columns.AutoFit()
        oWB.SaveAs (strPathToSaveFileTo & "bounces for " & Format(Date, "yyyymmdd ") & Format(Time, "hh.mm.ss") & ".xls")
        oWB.Close()
        oExcel.Quit()
    End If
 
SaveBounceExcel_exit:
    Item = Nothing
    ns = Nothing
    oWS = Nothing
    oWB = Nothing
    oExcel = Nothing
    Exit Sub
 
SaveBounceExcel_err:
    MsgBox("An unexpected error has occurred." _
       & vbCrLf & "Please note and report the following information." _
       & vbCrLf & "Macro Name: SaveLeadsToExcel " _
       & vbCrLf & "Error Number: " & Err.Number _
       & vbCrLf & "Error Description: " & Err.Description _
       , vbCritical, "Error!")
    Resume SaveLifeBlastExcel_exit
End Sub

bounces, process once they’re extracted – following assumes emails have been processed (as immediately above) and imported into an Access database

Public Sub ProcessBody()
    Dim ds As Object   ' actually an array.  But we don't know how big yet.  Not til GetRows below
 
    'our table of standard return message translator
    strSQL = "select * from MessageExtracts"
    rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) 'dbOpenSnapshot)
 
    'must move to end to get how many records
    rst.MoveLast()
    HowMany = rst.RecordCount
 
    'must move back to beginning to actually read records into the dataset!
    rst.MoveFirst()
    ds = rst.GetRows(HowMany) ' shouldn't even need the argument.  But seem to...
    rst.Close()
    rst = Nothing
 
    strSQL = "select * from emailTable"
    rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
    If rs.RecordCount > 0 Then
        rs.MoveFirst()
        Do While Not rs.EOF
            MatchFound = False
            body = rs(3)
            ' Let's try to process the body to extract a better error message
            ' Several things to look for
            For i = 0 To UBound(ds, 2)
                FoundThisSymptom = InStr(body, ds(0, i))    ' field 0 has non-standard error message
                If FoundThisSymptom > 0 Then
                      rs.Edit()
                      rs(5) = ds(1, i)    ' field 1 has the standard error message
                      rs(6) = ds(2, i)    ' field 2 has whether this is worthy of marking unmailable
                      rs.Update()
                      MatchFound = True
                      Exit For    'We got a hit.  Don't keep trying!
                End If
            Next
            ' Here's where we're looking for a string between "Generating server:" and "Original"
            ' which sometimes has useful codes
            If MatchFound = False Then  ' this is a last resort, if we didn't find a match above
                FirstInstanceDiagnostic = InStr(body, "Generating server:")
                FirstInstanceOriginal = InStr(body, "Original")
                Diff = FirstInstanceOriginal - FirstInstanceDiagnostic
                Extract = Mid(body, FirstInstanceDiagnostic + Len("Generating server:"), Diff)
                FirstPound = InStr(Extract, "#")
                SecondPound = InStrRev(Extract, "#")
                Diff2 = SecondPound - FirstPound
 
                If FirstInstanceDiagnostic > 0 Then
                      Extract2 = Mid([Extract], [FirstPound] + 1, [Diff2] - 1)
                      rs.Edit()
                      rs(5) = Extract2
                      rs(6) = -1
                      rs.Update()
                      MatchFound = True
                Else
                      Extract2 = "no error message found in expected format"
                End If
            End If
            rs.MoveNext()
        Loop
        rs.Close()

    End If
End Sub

–C–

Calendar Outlook 2010 (Group Calendar shared by e-mail)

Create a new calendar, Put in the appointments that you wish to share with other users.

Now it's time to share the calendar so follow these steps.

Share calendars by email Calendars shared by email arrive in the recipient’s Inbox as email message attachments, with a Calendar Snapshot in the message body. You can edit the Calendar Snapshot before sending. For example, you can change fonts or highlight days or appointments.

To send a calendar by email:

1. On the Home tab, in the Share group, click E-mail Calendar.

2. In the Calendar box, click the calendar that you want to send.

3. In the Date Range box, click the time period that you want the calendar to show.

4. Enter or select any other options that you want, and then click OK.

An Outlook 2010 user who receives the Calendar by email can choose to open the Calendar Snapshot in Outlook. Doing so can display the Calendar Snapshot and the recipient’s current calendar in side-by-side mode or calendar overlay mode.

can't remember password - see password, Outlook can't remember

Can’t remove Additional Mailbox

Start Run, type in ADSIEdit.msc; Connect to and click ok; Open domain,users, navigate to user’s mailbox that is stuck in your outlook, right click, Properties, find MSExchDelegateListLink and remove yourself from that list.

create your own self signed SANS certificate for Exchange 2010 – see here to do it on the cheap

code, get to – Tools, Macro, Visual Basic Editor

columns, wrapping – Tools/Options/Mail Format/Internet Format/Plain text options (Outlook defaults to 76)

compact folder in Outlook 2000 – right click main folder, properties, advanced

contacts don't show - see address list missing.  See also autofill

contact, change into a vCard – see vCard, create from a contact

control panel, icons missing/p>

mail icon missing – search for file \programs\common files\System\MSMAPI\1031\MLCFG32.CPL

Convert Outlook Express to Outlook XP

“Could not perform this operation because the default client is not properly installed” – In Internet Explorer, go to Tools, Internet Options, Programs, Email.  If Outlook is selected, select something else, close the menu, open again, re-select Outlook.

credentials, keeps asking for every time you open up Outlook, doesn’t remember – there are a bunch of things that can cause this

  1. Quit all programs.
  2. Click Start, click Run, type regedt32 in the Open box, and then click OK.
  3. Locate and click the following registry key:
  4. HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider

  5. On the EDIT (security menu in win 2k) menu, click Permissions.
  6. Click the registry key for the user that is currently logged on and ensure that Read and Full Control are both set to Allow.
  7. Click the Advanced button, ensure that user that is currently logged on is selected, that Full Control is listed in the Permissions column, and that "This Key and Subkeys" is listed in the Apply to column.
  8. Click to select the "Reset permissions on all child objects and enable propagation of inheritable permissions" check box.
  9. Click Apply, and then click Yes when you are prompted to continue.
  10. Click OK, and then click OK.
  11. Double-click the Protected Storage System Provider key to expand the key, click the user subkey folder that is directly below the Protected Storage System Provider key, click Delete on the Edit menu, and then click Yes in the warning message dialog box.  The user subkey folder looks similar to the following example:
  12. S-1-5-21-124525095-708259637-1543119021-16701

    NOTE: For every identity that you have, there will be a subkey under the Protected Storage System Provider key. To resolve this problem in all of your identities, you must delete all of the user subkeys folders under the Protected Storage System Provider key.

  13. On the Registry menu, click Exit, and then restart your computer.

4. 1. Either Control Panel, mail OR, in Outlook, File, Account Settings, double click the account, More Settings, Security tab

2. Click to select “Always prompt for logon credentials”.

3. Close and restart Outlook.

4. Go back and un-click that same box, close and restart Outlook.

5. 1. In Outlook, File, Account Settings, double click the account, More Settings, Connection tab

2. Un-click to select “Connect to Microsoft Exchange using HTTP”.

3. Close and restart Outlook.

This is all fine and good.  But what happens when, after you do all this, you go back in here and notice that box keeps checking itself again?  Assuming you’re hooked to Exchange, in the Exchange Shell:

Get-outlookprovider -identity EXPR

 

Name     Server   CertPrincipalName  TTL

----     ------   -----------------  ---

EXPR                                   1

delete it:

Get-outlookprovider -identity EXPR | remove-outlookprovider

 

Confirm

Are you sure you want to perform this action?

Removing Outlook Provider "EXPR".

[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): y

Once this is done, recycle the application pool of AutoDiscover in IIS.  This will keep the outlook clients from automatically propagate the settings for “Outlook Anywhere”, but retains the possibility for configuring it manually.

All web services and autodiscover information other than the proxy information itself are intact.  To restore the EXPR provider, run the following:

New-OutlookProvider -Name :EXPR

cursor moves randomly

Control Panel, Add/Remove Programs, MS OfficeXP, Change.  This invokes the “maintenance mode options”.  Add or remove features, choose advance customization of applications, Office shared features, remove the 'alternative input' component.  What your PC is trying to do is to type what it heard thru the microphone.

if you've installed Windows XP without installing the hardware manufacturer's software as well, your system will be less stable and more susceptible to this problem. That happened to someone when he tried installing a full version of Windows without reinstalling the Sony stuff, and it went away when he put Sony's stuff on again.

Turning down Mouse Sensitivity in the Control Panel helps

If it's a notebook, take care not to move your thumbs too near to the touchpad

–D–

date email received, determine programmatically

For Each Item In Inbox.Items

    ReceivedDate = Item.ReceivedTime
Next Item

detect and repair - under the help menu, often grayed out

dibeng.dll

directory, change programmatically – find the folder where the in box is, get its parent, find a folder in that parent

Dim ns As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Set ns = GetNamespace("MAPI")
Set objFolder = ns.GetDefaultFolder(olFolderInbox)
strFolderName = objFolder.Parent
Set objMailbox = ns.Folders(strFolderName)
Set Inbox = objMailbox.Folders("test")

distribution list, send

highlight it from your address book, go to Actions, then Forward. It will attach it to your email.

BUT....

The person you are sending it to will have to do the following to get it to work properly.

  1. They will have to have all the addresses placed in the list, actually be contacts of their own to send the email. So, send all the contacts as well. (Highlight them, Actions, Forward.)
  2. When they receive the list, they will need to open the attachment, select File, Copy to Folder, and Select Contacts. Otherwise it will never save into their contacts.

Distribution Lists in outlook were meant to be used by the individual, but with a little workaround, it can be shared.

downloads for office

downloading hierarchy, frozen at – this happens sometimes when the IMAP .pst file is corrupt.  Delete and re-create.  You might then encounter, “The TCP/IP connection was unexpectedly terminated by the server.”

double emails – shutdown computer and restart (don’t just do a “warm” restart)

–E–

email address, get rid of autofill entry for - see autofill for email address, get rid of entry

email links in a web page result in “Could not perform this operation because the default client is not properly installed” error message – see “Could not perform this operation because the default client is not properly installed”

error messages

0x800CCC90 Your incoming (POP3) e-mail server has reported an internal error –separate your POP3 accounts into smaller Send/Receive groups, and then connect with each Send/Receive group separately:

  1. Click Tools, point to Send/Receive Settings, and then click Define Send/Receive Groups.
  2. Click New In the Send/Receive Group Name box, type the name that you want to give this group.
  3. In the left pane, under Accounts, click the account that you want to include in this group, and then click to select the Include account in this send/receive group check box.
  4. Click to select the Send mail items check box and the Receive mail items check box.
  5. Click Download complete item including attachments, and then click OK.
  6. Repeat steps 3 through 5 for each account that you want to include in this Send/Receive group.

  7. 7.To create another Send/Receive group and add an account to that group, repeat steps 2 through 6.
  8. When you have created all the Send/Receive groups that you want, click span style='font-family:CG Times'>Close.
  9. To send and receive e-mail for each group that you have created, click Tools, point to Send/Receive, and then click the name of the Send/Receive group that you want.

0x800CCC67 - Linksys problem, Go to Linksys home page, [Advanced] Tab, [Filters] Tab, Scroll down till you see where it says, "MTU:" click [Enable]. Next, in the field labeled "Size:", enter 1492.  This did NOT work 1/28/03.

0x80040109 email problem sending multiple copies of email – get rid of any unnecessary addins (Tools, Options, Other, Advanced Options) such as “Exchange Extensions property pages” and “Server Extension”

exe attachments, can’t open- HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Outlook\Security. Under that key, add a new string value named Level1Remove. For value for Level1Remove, enter a semicolon-delimited list of file extensions. For example, mdb ;url.  There are also some utilities

DetachXP - Pretty nifty to use to set up users who shouldn't have the permissions addin tab described below.  Do NOT use the TweakOL utility at this same site because it allows too many other attachments such as .bat, .com, .vbe.

Permissions Add-in - much better because it adds a "File Restrictions" tab to the "options" dialog to allow you to select from a list of common extensions

expand all folders - see folders, make sure all updated

Express, Outlook – see Outlook Express

–F–

fetching headers – see headers, fetching

file locations

file, open – of the 4 methods shown here, this is one way, but you have to add a reference:

Dim oFSO As New FileSystemObject
Dim oFS
Dim FileName, strMsg As String
FileName = "C:\test\" & Atmt.FileName & i
 
oFS = oFSO.OpenTextFile(FileName, ForReading, False)
 
k = 0
Do Until oFS.AtEndOfStream
    strMsg = oFS.ReadLine
    Debug.Print(k & ", " & Len(strMsg) & ", " & strMsg)
    k = k + 1
Loop

fixes - see updates

folders, make sure all updated

This is helpful if you want to back up a user's O365 Exchange account to a PST after you move him to a new PC. He has dozens of files over years of time.

  1. Make sure you change default from 1 year to forever
  2. Click the user's folder and use the Windows * combo. Note: make sure you use the numeric pad for the asterisk

Once you do this, you should see notices indicating all the folders are updating one by one at the bottom

–G–

general protection fault in module DIBENG.DLL

Group Calendar (see Calendar under C)

–H–

headers, see Internet headers

Headers, fetching, takes a long time

Start, Run, enter: "outlook /ical". (1)

Another thing to try: turn the preview pane off (in Outlook, View, Preview Pane) (2, 3)

Hide recipients - Often you’ll want to send mass emails to customers.  You don’t want to have your customers see each other’s emails.  You don’t want to just put all your customers in “.bcc” (blind carbon copy) because some spam filters automatically reject these.  You want each recipient’s email address to show up in the “To:” field.  Start in MS Word, with your email message already written up.  Go into Tools/Letters and Mailings/Mail Merge Wizard.  Step 1 of 6, choose “e-mail messages”.  Step 3 of 6, choose “Select from Outlook contacts”.

hints, general

1, 2, 3, 4

HTML, change body of email from plain text to – there should be a pick list in the tool bar with “HTML”, “Rich Text”, and “Plain Text”

hyperlinks not working in the body of an email, bring up the “find file” box instead –

Check program associated with url extension

1. Double-click My Computer on the desktop.

2. On the Tools menu, click Folder Options (or Options).

3. Click the File Types tab, click URL:HyperText Transfer Protocol in the Registered File Types box.  Note this will be towards the top ‘ cause its extension is “(NONE)” rather than down towards the bottom where the “url” extension would be found.  Click Edit.

4. In the Actions box, click Open, and then click Edit.  If you can’t edit it, delete it and create a new one with “open” as the action.

5. Browse to C:\Program Files\Internet Explorer\iexplore.exe

Try re-registering DLLS using the regsvr32 command.  Normally there is a whole bunch you’ll want to put into a .bat file.  For example,

regsvr32 comcat.dll /s

regsvr32 shdoc401.dll /s

etc.

Try restoring IE defaults

–I–

icons missing control panel – see control panel, icons missing

inbox missing –

Microsoft Exchange Server MAPI Editor

  • Download mfcmapi from this link: http://www.microsoft.com/downloads/details.aspx?FamilyID=55fdffd7-1878-4637-9808-1e21abb3ae37&displaylang=en
  • Extract this on the end-user’s computer having the issue
  • Open up MFCMapi on the computer and choose the “Session” then “Logon and Display Store Table”.
  • Select the profile that the user uses to access email then double-click the “Mailbox MDB”
  • On the new folder that opens, expand “Root – Mailbox” and then expand the Information Store folder which will show all the folders in the mailbox (IPM_SUBTREE)
  • Highlight Inbox
  • On the right pane, look for the Property Name – “PR_ATTR_HIDDEN”. This should have a tag of 0X10F4000B. Under the Value column, this should be set to False by default.
  • If it is set to True, right-click this Property Name, then, select “Edit Property”
  • Uncheck the checkbox, which sets the attribute to F (False) and click on OK.
  • Refresh the screen by selecting F5 and make sure that the change did not revert back to T (True).
  • Close MFCMapi.
  • Open Outlook and see if Inbox folder is now showing in the Mailbox Hierarchy

Internet Explorer web page email links result in “Could not perform this operation because the default client is not properly installed” error message – see “Could not perform this operation because the default client is not properly installed”

Internet headers, view - right click on the message, "Options".  Info will be toward the bottom in the pop-up window that comes up

–J–

–K–

keep copy of emails on server for a few days - Tools, Options, Mail Setup, Email Accounts, View or Change Account, Next, Click on the correct account, Change, More Settings, Finally....click on the advanced tab, click the box "Leave a copy of the message on the server". You can choose to delete it after a certain number of days or just leave it on the server from there.

keyboard response erratic – see cursor moves randomly

–L–

ldvp addin – Symantec antivirus – normally you want this one

leave emails on server – email accounts, view/change radio button, change button, more settings button, advanced tab, leave a copy on server check box

links to send email in a web page result in “Could not perform this operation because the default client is not properly installed” error message – see “Could not perform this operation because the default client is not properly installed”

logging, enable - How to Enable Transport Logging - Use the following steps to enable logging:

On the Tools menu, click Options.

Click the Other tab

Click the Advanced Options button

Click to select the Enable Mail Logging (Troubleshooting) check box.

Click OK to save the setting, and then return to the main Options screen

Click OK.

Quit and restart Outlook.

From this point on, every time Outlook sends or receives messages, the communication that takes place between Outlook and the e-mail server is written to a log file.

NOTE: It is very important to disable logging after the logs have captured the failed communication with the server. If you do not disabled logging, the logs continue to grow indefinitely.

lsass.exe starts churning away when you send an email and it gets stuck in the Outbox.

Exchange server died.  Well, it was still running, but database corrupt.  I had switched over to a backup POP.  I was using the POP account as my default and outgoing emails were getting in the POP Outbox.  But I still had left the Exchange account in Outlook for when my Exchange server would come back up.  As soon as I moved all the emails and folders over to the POP folder and deleted the Exchange account in Outlook, this problem went away.  Of all my users, only one had this problem.

–M–

mail icon missing control panel – see control panel, icons missing

Microsoft Word is set to be your e-mail editor.  However, word is unavailable, not installed, or is not the same version as Outlook.  The outlook e-mail editor will be used instead.

run Regsvr32.exe %Windir%\System32\Ole32.dll

mouse response erratic – see cursor moves randomly

multiple emails cause “0x800CCC90 Your incoming (POP3) e-mail server has reported an internal error”

–N–

NK2

edit - NK2Edit

utility to automatically rebuild

Norton antivirus

vpmsece.dll

–O–

OST location - \\userMachineName\c$\Users\someUser\AppData\Local\Microsoft\Outlook

out of memory or system resources - try closing other programs to free additional memory - detect and repair fixed this 4/30/03

out of office

on the Exchange (server) side:

Organization ConfigurationHub Transport click Remote Domains tab right click Default select properties

In the “General” tab, select “allow internal out-of-office messages, and out-of-office messages set by Outlook 2003 or earlier clients or sent by Exchange Server 2003 or earlier servers”.

In the “Format of original message sent as attachment to journal report” tab, make sure the “Allow automatic replies” check box is set.

on the Outlook (client) side:

Under Tools, you might have an “out of office assistant”.  But you might get “Your Out of Office settings cannot be displayed, because the server is currently unavailable. Try again later.”  Especially in Outlook 2007 because the Availability Service isn’t up.  If so, then create a rule (from within Outlook) to have your mailbox automatically reply to a sender.

  • In Outlook on the Tools menu, click Rules Wizard.
  • When the dialog box appears click new.
  • Under which type of rule do you want to create select Check messages when they arrive then click “next”.
  • Under which conditions do you want to check, don’t check anything.   When you click “Next” you’ll probably get a pop-up message, “This rule will be applied to every message you receive.  Is this correct?”  Click “Yes”.
  • Under what do you want to do with the message, click to select the have server reply using a specific message check box
  • Under Rule Description, click the underlined phrase a specific message.
  • In the untitled message View menu, type the subject and the message body that you want to be sent, then click save, and close.
  • Click finish

operation failed. An object could not be found – see profile, create new

Outlook Express

Convert Outlook Express to Outlook XP – from within Outlook XP, File/Import and Export.  On the pop-up window, DO NOT select the default “Import from another program or file” but instead select “Import Internet Mail and Addresses” towards the bottom.

File location 1

  1. Start OutlookExpress.
  2. On the Tools menu,click Options.
  3. On the Maintenance tab, click the Store Folder button, this will show to the default location of where your Outlook Express data is stored. Write this down.
  4. Open the Windows Explorer program and browse to the Default location that you wrote down.
  5. Right click on the default folder (Outlook Express), and left click the option to Copy it.

–P–

password , Outlook can't remember – see credentials, keeps asking for every time you open up Outlook

.pdf attachments, can’t see – see attachments, can’t see

plain text, change body of email to HTML from – there should be a pick list in the tool bar with “HTML”, “Rich Text”, and “Plain Text”

Popping up, send and receive status keeps – see send and receive status keeps popping up

profile , can’t add – is it an Exchange account?  Other users working just fine but can’t add an existing user to Outlook? Make sure the "Microsoft Exchange System Attendant" service is running!  Even though it's "automatic", it often doesn't start when you start/restart the server.  When it's not running, previously created Outlook profiles will work just fine.  But good luck creating a new one.  POP accounts work just fine.  But not new Exchange connections from Outlook.

profile , create new

Add a profile:

Control panel, Mail, add profile.

Delete the old one.

Point to your old mail box:

File, Data management, Add

Remove the new one that's on the top now and make the one you added be the right one:

Tools, Email Accounts, View or Change existing email accounts. Down at the bottom, you'll see "Deliver new email to the following location:"  When you click on the arrow, you'll see two apparently identical "Personal Folders".  Delete the top one.

And, of course, you'll need to fix the contacts.

program is trying to automatically send e-mail on your behalf.  Do you want to allow this?  If this is unexpected, it may be a virus and you should choose ‘No’” – work around is to put some part of the code inside Outlook so it trusts itself

In Outlook 2003, if a MAPI MailItem object is created from within the VBA project (specifically the 'ThisOutlookSession' module), it is assumed to be "Trusted" and will not prompt the usual security messages when attempting to call the .Send method or when making use of the Outlook address book.

We can use this "Trusted" method to create an exposed Outlook VBA function that creates and sends the MailItem and then call this using Automation.  In our case, we will be calling the exposed Outlook VBA function from within Access.

For this example, we've created a function called FnSendMailSafe within the ThisOutlookSession module of Outlook VBA project.  This function creates the mail object, sets the parameters and then sends it.

One problem is that when Outlook is first opened, the VBA project doesn't expose the custom VBA function unless either a VBA event has fired, or the user has manually opened the VBA IDE.  The trick used is to also create a blank event called Application_Startup() in the ThisOutlookSession module - this event will fire as soon as Outlook opens and so the VBA project will load properly and our function will be exposed.

Finally, the Outlook Macro Security level must be set to LOW or MEDIUM otherwise the custom VBA function will not be exposed through automation.
(Note: If you have changed the Macro Security level you must restart Outlook).

Furthermore, if Outlook is closed when you try to send e-mails, you will probably need to set the macro security level to LOW rather than MEDIUM, otherwise you may receive a warning about unsafe macros.

Here's the Outlook 2003 VBA code: (copy and paste into the ThisOutlookSession VBA module)

Option Explicit

' Code: Send E-mail without Security Warnings
' OUTLOOK 2003 VBA CODE FOR 'ThisOutlookSession' MODULE
' (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
' Written 07/05/2005
' Updated v1.3 - 11/11/2005
'
' Please read the full tutorial here:
' http://www.everythingaccess.com/tutorials.asp?ID=Outlook-Send-E-mail-without-Security-Warning
'
' Please leave the copyright notices in place - Thank you.

Private Sub Application_ Startup()

    'IGNORE - This forces the VBA project to open and be accessible using automation
    '         at any point after startup


End Sub

' FnSendMailSafe
' --------------
' Simply sends an e-mail using Outlook/Simple MAPI.
' Calling this function by Automation will prevent the warnings
' 'A program is trying to send a message on your behalf...'
' Also features optional HTML message body and attachments by file path.
'
' The To/CC/BCC/Attachments function parameters can contain multiple items by separating
' them by a semicolon. (e.g. for the strTo parameter, 'test@test.com; test2@test.com' is
' acceptable for sending to multiple recipients.
'
' Read more here:
' http://www.everythingaccess.com/tutorials.asp?ID=Outlook-Send-E-mail-without-Security-Warning
'
                
Public Function FnSendMailSafe(strTo As String, _
                                  strCC As String, _
                                  strBCC As String, _
                                  strSubject As String, _
                                  strMessageBody As String, _
                                  Optional strAttachments As String) As Boolean

' (c) 2005 Wayne Phillips - Written 07/05/2005
' http://www.everythingaccess.com
'
' You are free to use this code within your application(s)
' as long as the copyright notice and this message remains intact.

On
Error GoTo ErrorHandler:

    Dim MAPISession As Outlook.NameSpace
    Dim MAPIFolder As Outlook.MAPIFolder
    Dim MAPIMailItem As Outlook.MailItem
    Dim oRecipient As Outlook.Recipient
    Dim TempArray() As String
    Dim varArrayItem As Variant
    Dim blnSuccessful As Boolean

    'Get the MAPI NameSpace object
    Set MAPISession = Application.Session
 
    If Not MAPISession Is Nothing Then
     'Logon to the MAPI session
     MAPISession.Logon , , True, False
     'Create a pointer to the Outbox folder
     Set MAPIFolder = MAPISession.GetDefaultFolder(olFolderOutbox)
     If Not MAPIFolder Is Nothing Then
        'Create a new mail item in the "Outbox" folder
        Set MAPIMailItem = MAPIFolder.Items.Add(olMailItem)
        If Not MAPIMailItem Is Nothing Then
         With MAPIMailItem
            'Create the recipients TO
                TempArray = Split(strTo, ";")
                For Each varArrayItem In TempArray
                      Set oRecipient = .Recipients.Add(CStr(Trim(varArrayItem)))
                      oRecipient.Type = olTo
                      Set oRecipient = Nothing
                Next varArrayItem
            'Create the recipients CC
                TempArray = Split(strCC, ";")
                For Each varArrayItem In TempArray
                      Set oRecipient = .Recipients.Add(CStr(Trim(varArrayItem)))
                      oRecipient.Type = olCC
                      Set oRecipient = Nothing
                Next varArrayItem
            'Create the recipients BCC
                TempArray = Split(strBCC, ";")
                For Each varArrayItem In TempArray
                      Set oRecipient = .Recipients.Add(CStr(Trim(varArrayItem)))
                      oRecipient.Type = olBCC
                      Set oRecipient = Nothing
                Next varArrayItem
            'Set the message SUBJECT
                .Subject = strSubject
            'Set the message BODY (HTML or plain text)
                If StrComp(Left(strMessageBody, 6), "<HTML>", vbTextCompare) = 0 Then
                      .HTMLBody = strMessageBody
                Else
                      .Body = strMessageBody
                End If
            'Add any specified attachments
                TempArray = Split(strAttachments, ";")
                  For Each varArrayItem In TempArray
                      .Attachments.Add CStr(Trim(varArrayItem))
                Next varArrayItem
            .Send 'No return value since the message will remain in the outbox if it fails to send
            Set MAPIMailItem = Nothing
           
         End With
        End If
        Set MAPIFolder = Nothing
     End If
     MAPISession.Logoff
    End If
    'If we got to here, then we shall assume everything went ok.
    blnSuccessful = True
   
ExitRoutine:
    Set MAPISession = Nothing
    FnSendMailSafe = blnSuccessful
    Exit Function
   
ErrorHandler:
    MsgBox "An error has occured in the user defined Outlook VBA function FnSendMailSafe()" & vbCrLf & vbCrLf & _
            "Error Number: " & CStr(Err.Number) & vbCrLf & _
            "Error Description: " & Err.Description, vbApplicationModal + "Error Description: " & Err.Description, vbApplicationModal + vbCritical
    Resume ExitRoutine

End Function

At this point, I would recommend testing the code by sending a test e-mail from the Outlook Immediate window:

? ThisOutlookSession.FnSendMailSafe("youremailaddress@here.com","","","Test","Test")

Once you've confirmed that you have set up the VBA code correctly, it's time for the Access automation...

And here's the Access VBA code used to call the function via Automation (example uses late-binding object):

' ACCESS VBA MODULE: Send E-mail without Security Warning
' (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
' Written 07/05/2005
' Updated v1.3 - 11/11/2005
'
' Please read the full tutorial & code here:
' http://www.everythingaccess.com/tutorials.asp?ID=Outlook-Send-E-mail-without-Security-Warning
'
' Please leave the copyright notices in place - Thank you.


'This is a test function - replace the e-mail addresses with your own before executing!!
'(CC/BCC can be blank strings, attachments string is optional)

Sub FnTestSafeSendEmail()

    Dim blnSuccessful As Boolean
    Dim strHTML As String
   
    strHTML = "<html>" & _
             "<body>" & _
             "My <b><i>HTML</i></b> message text!" & _
             "</body>" & _
             "</html>"
               
    blnSuccessful = FnSafeSendEmail("myemailaddress@domain.com", _
                                        "My Message Subject", _
                                        strHTML)
                                          
    'A more complex example...
    'blnSuccessful = FnSafeSendEmail("myemailaddress@domain.com; secondrecipient@domain.com", _
                                     "My Message Subject", _
                                     strHTML, _
                                     "C:\MyAttachmentFile1.txt; C:\MyAttachmentFile2.txt", _
                                     "cc_recipient@domain.com", _
                                     "bcc_recipient@domain.com")


    If blnSuccessful Then
        MsgBox "E-mail message sent successfully!"
    Else
        MsgBox "Failed to send e-mail!"
    End If
End
Sub

'This is the procedure that calls the exposed Outlook VBA function...
Public Function FnSafeSendEmail(strTo As String, _
                    strSubject As String, _
                      strMessageBody As String, _
                      Optional strAttachmentPaths As String, _
                      Optional strCC As String, _
                      Optional strBCC As String) As Boolean

    Dim objOutlook As Object ' Note: Must be late-binding.
    Dim objNameSpace As Object
    Dim objExplorer As Object
    Dim blnSuccessful As Boolean
    Dim blnNewInstance As Boolean
   
    'Is an instance of Outlook already open that we can bind to?
    On Error Resume Next
    Set objOutlook = GetObject(
, "Outlook.Application")
    On Error GoTo 0
   
    If objOutlook Is Nothing Then
        'Outlook isn't already running - create a new instance...
        Set objOutlook = CreateObject("Outlook.Application")
        blnNewInstance = True
        'We need to instantiate the Visual Basic environment... (messy)
        Set objNameSpace = objOutlook.GetNamespace("MAPI")
        Set objExplorer = objOutlook.Explorers.Add(objNameSpace.Folders(1), 0)
        objExplorer.CommandBars.FindControl(, 1695).Execute
               
        objExplorer.Close
               
        Set objNameSpace = Nothing
        Set objExplorer = Nothing
       
    End If

    blnSuccessful = objOutlook.FnSendMailSafe(strTo, strCC, strBCC, _
                                                strSubject, strMessageBody, _
                                                strAttachmentPaths)
    If blnNewInstance = True Then objOutlook.Quit
    Set objOutlook = Nothing
    FnSafeSendEmail = blnSuccessful
End Function

–Q–

Quask forms, process – see also Attachments, extract fields buried in binary attachments and save them to an Excel spreadsheet

Sub SaveQuaskLeadsToExcel()
    ' We get Quask attachments in 2 completely different formats:
    ' 1. in HTML- or XML-like format with fields delimited like "<field id="6">bob</field>" and
    ' 2. embedded in the email in a weird Outlook binary form where fields are delimited by their
    '    name but which are interlaced (ever other character) with hex '00'
    ' This script iterates through Quask attachments in the Inbox and deals with both types
    On Error GoTo SaveQuaskLeadsToExcel_err
    Dim ns As Outlook.NameSpace
    Dim Inbox As Outlook.MAPIFolder
    Dim Item As Object
    Dim Atmt As Attachment
    Dim i, j, k As Integer
    Dim intWhereWeFoundFirstField As Integer
    Dim strMsg As String
    Dim iFileNum As Double
    Dim btAR() As Byte
    Dim strIntermed As String   ' a lot faster if we explicitly declare as string than if we leave
    ' implicitly declared as variant
 
    Dim strPathToSaveFileTo As String
    Dim FileName As String
 
    ' Since I've found no way to directly examine an attachment, need to temporarily
    ' store in a scratch file so we can read back into a variable right away to finish
    ' our processing
    strPathToSaveFileTo = "c:\email\"
    FileName = strPathToSaveFileTo & "scratch.txt"
 
    Dim oExcel As Excel.Application
    Dim oWB As Excel.Workbook
    Dim oWS As Excel.Worksheet
 
    ' For the 1st type: fields delineated like: "<field id="6">bob</field>"
    ReDim strFieldID(5) As String
    strFieldID(1) = """6"""
    strFieldID(2) = """10"""
    strFieldID(3) = """14"""
    strFieldID(4) = """8"""
    strFieldID(5) = """junk"""  ' we don't seem to have 5th field (comments) in this format
 
    ' For the Excel column titles and the 2nd type: fields embedded in binary Outlook body
    ReDim strFieldName(6) As String
    ' The order here is important; we use j for begin delimiter and j+1 for end delimiter of each field
    strFieldName(1) = "Name:"
    strFieldName(2) = "E-mail:"
    strFieldName(3) = "#seminars:"
    strFieldName(4) = "PhoneNo:"
    strFieldName(5) = "Comments:"
    strFieldName(6) = "--" ' final delimiter, beyond which there be dragons
 
ReDim strFieldValue(5) As String
 
    ' Sometimes attachments contain duplicate info.  Luckily so far, they've been in consecutive attachments.
    ' So stash previous name and current name so we compare and skip processing this attachment if same.
    Dim strOldName As String
    strOldName = ""
    Dim strThisName As String
    strThisName = ""
 
    Dim RegEx As Object
    Set RegEx = CreateObject("vbscript.regexp")
    ' Create illegal character string
    Dim badChars As String
    Dim pattern As String
    For i = 0 To 31
        ' Use ChrW instead of Chr to avoid boxing
        badChars = badChars & ChrW(Index)
    Next
    'badChars = [\x00-\x1F]
    badChars = badChars & ChrW(127)
 
    ' Build RegEx pattern - square brackets say match any
    ' one of them
    pattern = "[" & badChars & "]"
 
    Set ns = GetNamespace("MAPI")
    Set Inbox = ns.GetDefaultFolder(olFolderInbox)
 
    i = 0   ' # emails with attachments
 
    If Inbox.Items.Count = 0 Then
        MsgBox "There are no messages in the Inbox.", vbInformation, _
               "Nothing Found"
        Exit Sub
    Else
        Set oExcel = New Excel.Application
        oExcel.Visible = True ' <-- *** Optional ***
        Set oWS = oExcel.ActiveSheet
        Set oWB = oExcel.Workbooks.Add
        Set oWS = oWB.Worksheets("Sheet1")
 
        ' column headings
        For j = 1 To 5
            oWS.Cells(1, j).Value = strFieldName(j)
        Next j
        oExcel.DisplayAlerts = False
 
        For Each Item In Inbox.Items    ' each email
            For Each Atmt In Item.Attachments   ' attachments to one email
                ' Right after we save the attachment to a dummy file ...
                Atmt.SaveAsFile(FileName)
                ' ... we read it right back in again
                iFileNum = FreeFile()
        ReDim btAR(1 To FileLen(FileName))
        Open FileName For Binary Access Read As #iFileNum
        Get #iFileNum, 1, btAR()
                Close(iFileNum)
 
                ' convert binary format to string
                strMsg = Stream_BinaryToString(btAR(), "us-ascii")
                ' strip converted string of all obvious hex characters;
                ' Outlook seems to especially like interlacing in "00" in with the
                ' body text and thows in big clumps of "FF" as well
                With RegEx
                      .Global = True
                        .IgnoreCase = True
                      .MultiLine = True
                      .pattern = pattern
                End With
                strMsg = RegEx.Replace(strMsg, "")
                For j = 1 To' columns or fields
                      ' look for info in attached forms with data like "<field id="6">bob</field>" (1st type)
                      intWhereWeFoundFirstField = InStr(strMsg, "<field id=" & strFieldID(j) & ">")
                      If intWhereWeFoundFirstField <> 0 Then
                          If j < 6 Then   ' don't bother looking for the the 5th field, "Comments"
                            ' chop off everything in front of our start delimiter...
                            strIntermed = Mid(strMsg, InStr(strMsg, "<field id=" & strFieldID(j) & ">") + Len(strFieldID(j)) + 11)
                            ' ...begin looking for end delimiter
                            strFieldValue(j) = Left(strIntermed, InStr(strIntermed, "</field>") - 1)
                        End If
                    Else
                        ' If nothing found in 1st format, look for info NOT in forms (2nd type)
                        intWhereWeFoundFirstField = InStr(strMsg, strFieldName(j))
                        If intWhereWeFoundFirstField <> 0 Then
                             ' chop off everything in front of our start delimiter...
                            strIntermed = Mid(strMsg, InStr(strMsg, strFieldName(j)) + Len(strFieldName(j)) + 1)
                            '...begin looking for end delimiter
                            If InStr(strIntermed, strFieldName(j + 1)) = 0 Then ' didn't find end delimiter right away
                                  ' If the field ahead of this one is skipped, we won't find our next (j+1)
                                ' expected delimiter.  Since we haven't find that expected (j+1) delimiter,
                                  ' start again at j + 2 and keep looking 'til we find SOME delimiter we recognize
                                  For k = j + 2 To 6
                                    If InStr(strIntermed, strFieldName(k)) = 0 Then
                                        'strFieldValue(j) = Left(strIntermed, 30) ' last resort
                                    Else
                                        strFieldValue(j) = Left(strIntermed, InStr(strIntermed, strFieldName(k)) - 1)
                                        ' We found something!  Get out now while the gettin's good or we might
                                        ' stomp all over what we found if we keep on going to the next one.
                                        Exit For
                                    End If
                                  Next k
                            Else    ' found end delimiter right away
                                strFieldValue(j) = Left(strIntermed, InStr(strIntermed, strFieldName(j + 1)) - 1)
                            End If
                        End If
                      End If
                      strFieldValue(j) = Excel.WorksheetFunction.Clean(strFieldValue(j))
                      oWS.Cells(i + 2, j).Formula = strFieldValue(j)
                      If j = 1 Then
                        strThisName = strFieldValue(j)
                      End If
                      strFieldValue(j) = ""
                Next j
                If strOldName = strThisName Then
                      GoTo NextAtmt   ' which skips the "i=i+1" below so the one cell we wrote just
                End If              ' above ("oWS.Cells(i + 2, j).Formula = strFieldValue(j)") will be overwritten
                strOldName = strThisName
                i = i + 1
NextAtmt:
            Next Atmt
        Next Item
        oWS.Range("A1:E1").Font.Bold = True
        oWS.Range("A:E").Columns.AutoFit
    oWB.SaveAs (strPathToSaveFileTo & "leads for " & Format(Date, "yyyymmdd ") & Format(Time, "hh.mm.ss") & ".xls")
        oWB.Close
        oExcel.Quit
    End If
 
SaveQuaskLeadsToExcel_exit:
    Set Atmt = Nothing
    Set Item = Nothing
    Set ns = Nothing
    Set oWS = Nothing
    Set oWB = Nothing
    Set oExcel = Nothing
    Exit Sub
 
SaveQuaskLeadsToExcel_err:
    MsgBox"An unexpected error has occurred." _
       & vbCrLf & "Please note and report the following information." _
       & vbCrLf & "Macro Name: SaveQuaskLeadsToExcel" _
       & vbCrLf & "Error Number: " & Err.Number _
       & vbCrLf & "Error Description: " & Err.Description _
       , vbCritical, "Error!"
    Resume SaveQuaskLeadsToExcel_exit
End Sub

QuickParts

To create a Quick Part for Outlook 2007:

1.

2. 3.

4. Click OK.

The resulting Quick Part will be saved to the NormalEmail.dotm file, the template used by Microsoft Outlook for email messages.

If you want to edit elements in your Quick Parts gallery, you'll need to do so through Microsoft Word, since the email editor in Microsoft Outlook is technically part of Word:

1. Close Microsoft Outlook 2007.

2. Open the NormalEmail.dotm document template, which is usually in %appdata%\Microsoft\Templates.

3. Go to the Insert tab and select Quick Parts -> Building Blocks Organizer.

4. Sort by Template in the resulting display to move together everything from NormalEmail.dotm.

5. You should now be able to edit or delete the components from NormalEmail.dotm in this view.

If you attempt to open NormalEmail.dotm when Outlook 2007 is open, you'll get a warning informing you that the file is open and the option to work on a read-only copy of the document. If you do this, none of your changes will be saved back to the file.

Right-clicking the Quick Parts Gallery gives an option to "Organize and Delete." This takes you straight to the Building Blocks Organizer without the need to close Outlook and edit NormalEmail.dotm in Microsoft Word.

–R–

Random movement of cursor – see cursor moves randomly

recall email – open sent email (the "message" tab should now have the focus) → in the Move section, hover over icons until you find the More Move Options icon → select Recall This Message …. You should get an email shortly with a link to the report. When you click on the link, it will likely give a count of 0 for “Recalled” and “Failed” but 1 for “Pending” and let you refresh. Eventually, it'll resolve to one or the other after you refresh.

replies going to “Inbox” instead of “Sent Items” box – see sent emails going to “Inbox” instead of “Sent Items” box

rules, email wildcard – see create a rule with wildcards

“Rules and alerts…” missing from tools area in the tool bar – this happens when you don’t have any accounts set up

–S–

send and receive status keeps popping up in the middle of your work

1. View/Status Bar, make sure it’s checked

The following suggestions from a newsgroup:

2. As well as checking the "Don't display this" box, make sure the push-pin in the lower right corner of the dialog is not pushed in.

3. - delete the following key in registry and recreate it:

HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\OFFFICE\10.0\OUTLOOK\PREFERENCES.

The key is a DWORD called SyncDlgSuppress and should have a value of 1

None of this worked for me on an Office 2000 upgraded to XP (SP 1&2) on 2/4/04.  I also did a "detect and repair" to no avail.  So this problem persists.

Is it an Exchange account?  Make sure the "Microsoft Exchange System Attendant" service on the Exchange server is running!  Even though it's "automatic", it often doesn't start when you start/restart the server.

send as alternate email address with Exchange – not straightforward. See discussion & 3rd-party tools here.

sent emails going to “Inbox” instead of “Sent Items” box – Tools/Options/Preferences/E-mail options/Advanced E-mail options/unclick “In folders other than Inbox, save replies with original message”.  This normally only happens with replies, not all sent items.  Although annoying, it seems such emails actually do make their way to their intended recipients.

Sent items, where going to

Sub MaheshSent()
    On Error GoTo MaheshSent_err
    Const EndSymbol = vbCrLf
    Dim ns As Outlook.NameSpace
    Dim Inbox As Outlook.MAPIFolder
    Dim olRecipient As Outlook.Recipient
    Dim Item As Object
    Dim FileName As String
    Dim i, j As Integer
 
    Dim iFileNum As Double
    Dim strPathToSaveFileTo As String
    strPathToSaveFileTo = "c:\data\"
   
    Dim oExcel As Excel.Application
    Dim oWB As Excel.Workbook
    Dim oWS As Excel.Worksheet
    ReDim strRange(8) As String
 
    ReDim strFieldName(4) As String
    strFieldName(1) = "who to"
   
    ReDim strFieldValue(4) As String
   
    Set ns = GetNamespace("MAPI")
    Set objFolder = ns.GetDefaultFolder(olFolderInbox)
    strFolderName = objFolder.Parent
    Set objMailbox = ns.Folders(strFolderName)
   
    Set Inbox = objMailbox.Folders("082109Sent270")
   
    i = 0   ' # emails
   
    If Inbox.Items.Count = 0 Then
        MsgBox "There are no messages in the Inbox. ", vbInformation, _
               "Nothing Found"
        Exit Sub
    Else
        Set oExcel = New Excel.Application
        oExcel.Visible = True ' <-- *** Optional ***
        Set oWS = oExcel.ActiveSheet
        Set oWB = oExcel.Workbooks.Add
        Set oWS = oWB.Worksheets("Sheet1")
        oWS.Range("A1").Value = strFieldName(1)
        oExcel.DisplayAlerts = False
       
        For Each Item In Inbox.Items
            strFieldValue(4) = ""
            'oWS.Cells(i + 2, 1).Formula = "direct from sender"
            strFieldValue(4) = Item.SenderName
            For Each olRecipient In Item.Recipients
                oWS.Cells(i + 2, 1).Formula = olRecipient.Name
            Next
            i = i + 1
        Next Item
        oWS.Range("A1:I1").Font.Bold = True
        oWS.Range("A:I").Columns.AutoFit
    oWB.SaveAs (strPathToSaveFileTo & "sent for " & Format(Date, "yyyymmdd ") & Format(Time, "hh.mm.ss") & ".xls")
        oWB.Close
        oExcel.Quit
    End If
   
MaheshSent_exit:
    Set Item = Nothing
    Set ns = Nothing
    Set oWS = Nothing
    Set oWB = Nothing
    Set oExcel = Nothing
Exit Sub
 
MaheshSent_err:
    MsgBox "An unexpected error has occurred." _
       & vbCrLf & "Please note and report the following information." _
       & vbCrLf & "Macro Name: SaveMaheshBounceExcel " _
       & vbCrLf & "Error Number: " & Err.Number _
       & vbCrLf & "Error Description: " & Err.Description _
       , vbCritical, "Error!"
    Resume MaheshSent_exit
End Sub

Service Pack 2 (SP2) problems, Outlook freezes - until update to Microsoft Outlook 2002 Service Pack 2 (SP-2) came around, only thing I've gotten to work is to create a new mail profile.  According to the newsgroups, others have tried:

renaming outcmd.dat to outcmd.old and restart outlook

scanpst.exe

detect and repair on the help menu

but none of these have ever worked for me

SMTP virtual server – IIS has a “Default SMTP Virtual Server”.  It’s not installed by default when you install IIS.  After it’s installed, right click and select properties.  On the “General” tab of tabbed dialog box that comes up, the “IP address” defaults to “All Unassigned”.  This won’t work.  Instead, select the IP address of your machine.  On the “Access” tab, click the “Relay…” button and change “Only the list below” to “All except the list below”.

sort by two columns - To do a multiple column sort of your messages in Outlook, click first on the column heading of the primary sort criteria. (Double-click if you need to switch between ascending and descending).  Now, hold down the Shift key and click on the column heading of your secondary sort criteria. (Clicking multiple times will switch the sort order back and forth).

speed up

uncheck “Get folder unread count” in Tools/Options/Mail Setup/Send/Receive/All Accounts/Edit

Symantec problem when first starting - delete C:\Documents and Settings\%Username%\Local Settings\Application Data\Microsoft\Outlook\Extend.dat and delete the file.  Extend.dat will be recreated the next time you open Outlook, and the Exchange plug-in will be installed when the first email is opened.  See link.

–T–

“This form requires Word as your e-mail editor but Word is either busy or cannot be found. The form will be opened in the Outlook Editor instead.” error message

How I finally solved this 3/22/04: turn off all signatures.  I think there’s some sort of a bug.  See newsgroup posting.

Microsoft Knowledge Base Article - 319796

This may occur when the following conditions are true:

You are using Microsoft Word as your e-mail editor.-and-

You upgraded Microsoft Office from an earlier version to Microsoft Office XP.

You may also notice that there are two instances of Outlook listed in Windows Task Manager.

CAUSE

This behavior occurs because some registry entries from a previous version of Office were not properly removed during the upgrade to Office XP.

RESOLUTION

To resolve this behavior, follow these steps.
NOTE: Because there are several versions of Microsoft Windows, the following steps may be different on your computer. If they are, see your product documentation to complete these steps.

Back Up Outlook Data Files (Personal Folders (.pst) File)

Edit the Registry

To remove registry entries from a previous version of Microsoft Office, follow these steps:

  1. Click Start, and then click Run.
  2. In the Run dialog box, type regedit, and then click OK.
  3. On the File menu, click Export.
  4. In the Export Registry File dialog box, under Save in, click the folder that you want to save the file in, and then in the File name box, type RegBackup.
  5. Under Export range, click All, and then click Save.
  6. Locate the following key:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Office\8.0
  7. On the Edit menu, click Delete, and then click Yes to confirm the deletion.
  8. Repeat steps 6 and 7 for the following keys:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0
    HKEY_CURRENT_USER\Software\Microsoft\Office\8.0
    HKEY_CURRENT_USER\Software\Microsoft\Office\9.0
  9. Quit the Registry Editor.

Repair the Office Installation

To repair the Office installation, follow these steps:

  1. Click Start, and then click Control Panel.
  2. In Control Panel, click Add or Remove Programs.
  3. In the list of currently installed programs, select Microsoft Office XP suite with FrontPage, and then click Change.
    NOTE:This label can vary depending on your version of Office XP
  4. In the Microsoft Office Setup wizard, click Repair Office, and then click Next.
  5. Click Detect and Repair errors in my Office installation, and then click Install.
  6. Follow any on-screen instructions to complete the repair operation.

    NOTE: If the Outlook user profile is not present when the operation is complete, rebuild the Outlook user profile by using the original data files (.pst).

two columns, sort by – see sort by two columns

Typing randomly – see cursor moves randomly

–U–

Unable to update public free/busy data – restart outlook /cleanfreebusy

updates

automatically detect what updates you need for Office

update to Microsoft Outlook 2002 Service Pack 2 (SP-2)

2002 update

–V–

vacation – see out of office

vCard, create from a contact

  1. Open the contact (contact: Person, inside or outside of your organization, about whom you can save several types of information, such as street and e-mail addresses, telephone and fax numbers, and Web page URLs.) you want to save as a vCard.
  2. On the File menu, click Export to vCard file.
  3. Type a name in the File name box, and then click Save.  Make sure you remember which directory you’re saving them to!  You’ll likely need to dig them out again soon to send them as attachments.

vpmsece.dll – “‘C:\Program Files\NavNT\vpmsece.dll’ could not be installed or loaded.  This problem may be resolved by using Detect and Repair on the Help menu.  Unable to load "C:\Program Files\NavNT\vpmsece.dll".  You may be out of memory, system resources or missing a dll.” – Explanation/Workaround: This error occurs when Norton AntiVirus Corporate Edition (NAVCE) was uninstalled from your computer prior to the installation of Symantec AntiVirus Corporate Edition (Symantec AV).

1. extend.dat

The default installation directory for Symantec AV 8.0 is:

C:\Program Files\Symantec Client Security\Symantec Antivirus\

However, Outlook is looking for Vpmsece.dll in the original NAVCE location:

C:\Program Files\NavNT\

To solve the problem, search your computer for Extend.dat and delete this file. Extend.dat will be recreated the next time you open Outlook and Microsoft Exchange realtime protection will be installed when the first email is opened.

2. Tools > Options > Other > Advanced Options >Add-in Manager, uncheck "LDVP"

I’ve used this when I can’t find “extend.dat” on the hard drive.

–W–

Web browser page email links result in “Could not perform this operation because the default client is not properly installed” error message – see “Could not perform this operation because the default client is not properly installed”

Word is set to be your e-mail editor.  However, word is unavailable, not installed, or is not the same version as Outlook.  The outlook e-mail editor will be used instead – see Microsoft Word is set to be your e-mail editor.  However, word is unavailable, not installed, or is not the same version as Outlook.  The outlook e-mail editor will be used instead

wrapping columns – see columns, wrapping

–X–

XML attachments, extract into Excel file

Sub SaveXMLLeadsToExcel()
    On Error GoTo SaveLeadsToExcel_err
    Dim ns As Outlook.NameSpace
    Dim Inbox As Outlook.MAPIFolder
    Dim Item As Object
    Dim Atmt As Attachment
    Dim FileName As String
    Dim i, j, k As Integer
    Dim intWhereWeFoundFirstField As Integer
    Dim strMsg
    Dim iFileNum As Double
    Dim btAR() As Byte
    Dim strPathToSaveFileTo As String
    strPathToSaveFileTo = "c:\data\"
    Dim boolFound As Boolean
 
    Dim oExcel As Excel.Application
    Dim oWB As Excel.Workbook
    Dim oWS As Excel.Worksheet
ReDim strRange(8) As String
 
ReDim strFieldID(8) As String
    strFieldID(1) = "FirstName"
    strFieldID(2) = "LastName"
    strFieldID(3) = "Phone"
    strFieldID(4) = "email"
    strFieldID(5) = "ADDRESS"
    strFieldID(6) = "CITY"
    strFieldID(7) = "STATE"
    strFieldID(8) = "ZIP_CODE"
 
ReDim strFieldValue(8) As String
 
    ns = GetNamespace("MAPI")
    Inbox = ns.GetDefaultFolder(olFolderInbox)
 
    i = 0   ' # emails with attachments
    k = 0   ' rows in Excel spreadsheet
    boolFound = False
 
    If Inbox.Items.Count = 0 Then
        MsgBox("There are no messages in the Inbox.", vbInformation, _
               "Nothing Found")
        Exit Sub
    Else
        oExcel = New Excel.Application
        oExcel.Visible = True ' <-- *** Optional ***
        oWS = oExcel.ActiveSheet
        oWB = oExcel.Workbooks.Add
        oWS = oWB.Worksheets("Sheet1")
        oWS.Range("A1").Value = "FirstName"
        oWS.Range("B1").Value = "LastName"
        oWS.Range("C1").Value = "Phone"
        oWS.Range("D1").Value = "email"
        oWS.Range("E1").Value = "ADDRESS"
        oWS.Range("F1").Value = "CITY"
        oWS.Range("G1").Value = "STATE"
        oWS.Range("H1").Value = "ZIP_CODE"
        oExcel.DisplayAlerts = False
 
        For Each Item In Inbox.Items
            For Each Atmt In Item.Attachments
                FileName = strPathToSaveFileTo & Atmt.FileName & i
                Atmt.SaveAsFile(FileName)
                iFileNum = FreeFile()
            ReDim btAR(1 To FileLen(FileName))
            Open FileName For Binary Access Read As #iFileNum
            Get #iFileNum, 1, btAR()
                Close(iFileNum)
                strMsg = Stream_BinaryToString(btAR(), "us-ascii")
                boolFound = False
                For j = 1 To 8
                        intWhereWeFoundFirstField = InStr(strMsg, "<" & strFieldID(j) & ">")
                      If intWhereWeFoundFirstField <> 0 Then
                        boolFound = True
                        y = Mid(strMsg, InStr(strMsg, "<" & strFieldID(j) & ">") + Len(strFieldID(j)) + 2)
                        strFieldValue(j) = Left(y, InStr(y, "</" & strFieldID(j) & ">") - 1)
                        strFieldValue(j) = Excel.WorksheetFunction.Clean(strFieldValue(j))
                        oWS.Cells(k + 2, j).Formula = strFieldValue(j)
                      End If
                Next
                If boolFound Then k = k + 1
            Next Atmt
        Next Item
        oWS.Range("A1:H1").Font.Bold = True
        oWS.Range("A:H").Columns.AutoFit()
    strPathToSaveFileTo = strPathToSaveFileTo & "leads for " & _
        Format(Date, "yyyymmdd ") & Format(Time, "hh.mm.ss") & ".xls"
        'strPathToSaveFileTo = "xx.xls"
        oWB.SaveAs(strPathToSaveFileTo)
        oWB.Close()
        oExcel.Quit()
    End If
 
SaveXMLLeadsToExcel_exit:
    Atmt = Nothing
    Item = Nothing
    ns = Nothing
    oWS = Nothing
    oWB = Nothing
    oExcel = Nothing
    Exit Sub
 
SaveXMLLeadsToExcel_err:
    MsgBox("An unexpected error has occurred." _
       & vbCrLf & "Please note and report the following information." _
       & vbCrLf & "Macro Name: SaveLeadsToExcel " _
       & vbCrLf & "Error Number: " & Err.Number _
       & vbCrLf & "Error Description: " & Err.Description _
       , vbCritical, "Error!")
    Resume SaveXMLLeadsToExcel_exit
End Sub

–Y–

–Z–

–No's–

0x800300FD – from here,

Method 1: Empty the Temp folder and the Recycle Bin

To do this, follow these steps:

1.

Click Start, click Run, type temp, and then click OK.

2.

Clear the contents in the Temp folder.

3.

Delete all the files from the Recycle Bin.

0x80040600 – from here,

use the Inbox Repair Tool - %ProgramFiles%\Microsoft Office\Office12\SCANPST.exe

Browse to your outlook.pst file and repair

0x800CCC67 - see error messages

0x800CCC90 Your incoming (POP3) e-mail server has reported an internal error - see error messages, but separate your POP3 accounts into smaller Send/Receive groups, and then connect with each Send/Receive group separately

0x80040109 email problem sending multiple copies of email- see error messages

19992 error from Mac – see here.  1st create a test ID.  If Outlook works in the new User Profile, then you may recreate the Exchange account in the Old user account.

2010, manually set up 0365 e-mail on

2002 update