“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
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.
- 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.
- 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
- Create a message in a new message window
- Type in the message you want to always be filled in into this new message window
- Select this text.
- Go to a Insert-> Auto Text ->New
- 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)
- On the File menu, click Import and Export.
- Click Export to a file, and then click Next.
- Under Create a file of type, click Personal Folder File (.pst), and then click Next.
- Click the folder that you want to back up, click to select the Include subfolders check box, and then click Next.
- 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
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
- Delete a directory. Close Outlook, go to "%userprofile%\AppData\Roaming\Microsoft\Protect", rename the only directory you’ll find in there. Open Outlook, it will create an identical folder to the one you just renamed, it will ask for your password as usual, enter your password. Close Outlook, then reopen it again, it shouldn’t ask for your password anymore. I haven’t found this to help much.
- Stored credentials. Go into the credential manager in control panel. Try deleting some or all of these. They will automatically be re-created when you try to log into Outlook again. Some suggest adding “wildcard” entries like *.yourdomain.com. I’ve never found this to help at all.
- Delete a registry key. a google article tells it well. I’ve never found this to work either.
- Quit all programs.
- Click Start, click Run, type regedt32 in the Open box, and then click OK.
- Locate and click the following registry key:
- On the EDIT (security menu in win 2k) menu, click Permissions.
- Click the registry key for the user that is currently logged on and ensure that Read and Full Control are both set to Allow.
- 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.
- Click to select the "Reset permissions on all child objects and enable propagation of inheritable permissions" check box.
- Click Apply, and then click Yes when you are prompted to continue.
- Click OK, and then click OK.
- 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:
- On the Registry menu, click Exit, and then restart your computer.
HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider
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.
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
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
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
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.
- 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.)
- 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.
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)
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:
- Click Tools, point to Send/Receive Settings, and then click Define Send/Receive Groups.
- Click New In the Send/Receive Group Name box, type the name that you want to give this group.
- 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.
- Click to select the Send mail items check box and the Receive mail items check box.
- Click Download complete item including attachments, and then click OK.
- Repeat steps 3 through 5 for each account that you want to include in this Send/Receive group.
- 7.To create another Send/Receive group and add an account to that group, repeat steps 2 through 6.
- When you have created all the Send/Receive groups that you want, click span style='font-family:CG Times'>Close.
- 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
fetching headers – see headers, fetching
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.
- Make sure you change default from 1 year to forever
- 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
general protection fault in module DIBENG.DLL
Group Calendar (see Calendar under C)
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
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
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
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
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.
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”
NK2
edit - NK2Edit
utility to automatically rebuild
Norton antivirus
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
on the Exchange (server) side:
Organization Configuration → Hub 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
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
- Start OutlookExpress.
- On the Tools menu,click Options.
- 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.
- Open the Windows Explorer program and browse to the Default location that you wrote down.
- Right click on the default folder (Outlook Express), and left click the option to Copy it.
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.
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
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
5 ' 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.
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
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
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.
“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:
- Click Start, and then click Run.
- In the Run dialog box, type
regedit
, and then click OK. - On the File menu, click Export.
- 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
. - Under Export range, click All, and then click Save.
- Locate the following key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\8.0 - On the Edit menu, click Delete, and then click Yes to confirm the deletion.
- 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 - Quit the Registry Editor.
Repair the Office Installation
To repair the Office installation, follow these steps:
- Click Start, and then click Control Panel.
- In Control Panel, click Add or Remove Programs.
- 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 - In the Microsoft Office Setup wizard, click Repair Office, and then click Next.
- Click Detect and Repair errors in my Office installation, and then click Install.
- 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
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)
vacation – see out of office
vCard, create from a contact
- 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.
- On the File menu, click Export to vCard file.
- 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.
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
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
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.