Solved

Sending emails from Access - Error 287

Posted on 2014-03-11
7
2,665 Views
Last Modified: 2014-03-20
I'm trying to send an email from Access using Outlook.  I have several macros that send emails for different purposes, most using the docmd.sendobject method.  This works fine althought a security message does pop up in Outlook askingthe user to confirm the action, which is not a problem.

I then have another macro that is used to send an email with a word document as an attachement.  All was fine when we were using XP and 2003 but having upgraded to Win 7 and Office 2010 this no longer works.  I have tried several different methods of sending this email but the jist of it is ...

Dim oLook As Object
Dim oMail As Object
Set oLook = CreateObject("Outlook.Application")
Set oMail = oLook.CreateItem(0)

With oMail
   .To = test@test.com
   .Body ="Hello World"
   .Subject = "hello"
   .Attachments.Add ("attachment.doc")
   .Send
End With

Open in new window


All the different codes I have tried vary arround the use of creating an Outlook object.  I can't use the SendObject method because it does not support attachments.

The error message that I get is...
Run-time error '287':
Application-defined or object-defined error.

I have done a lot of research on the net trying to find a solution which I have not been able to find.

One thing that does keep coming up is security within Outlook not allowing Access to send emails.  Outlook doesn't even come up with the message asking the user to confirm the issue.

Has anyone else come up against this and know of a solution, whether in Access or Outlook?

TIA.
0
Comment
Question by:jdc1944
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
change this

  .Attachments.Add ("attachment.doc")

to include the full path to the document

  .Attachments.Add ("c:\foldername\attachment.doc")
0
 
LVL 26

Accepted Solution

by:
MacroShadow earned 500 total points
Comment Utility
0
 
LVL 19

Expert Comment

by:regmigrant
Comment Utility
This is generated either when security disallows all programmatic access or user says 'no' to the request.

Have you tried to either disable outlook security or sign your project/MDB with a certificate so it is trusted
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 2

Author Comment

by:jdc1944
Comment Utility
@MacroShadow
I've just used a CDO example and got it to work, thanks.  The only issue with that is the sent email does not appear in the sent items.  We kind of need this for an audit trail.  Do you know if this is possible at all?

@regmigrant
Thanks, all the settings are locked but I will get IT to change them for me and see if that gets my old code working in case the CDO method doesn't allow messages to be shown in the sent items of outlook.
0
 
LVL 26

Expert Comment

by:MacroShadow
Comment Utility
When you sent an email using cdo it won't show up in Outlook's sent items since you are interacting directly with the mail server, the sent items are a mail client function, in your case Outlook's.
0
 
LVL 19

Expert Comment

by:regmigrant
Comment Utility
You could cc the local user and set a category as an audit trail using CDO - this might be easier than the security/signing option
0
 
LVL 2

Author Closing Comment

by:jdc1944
Comment Utility
Thanks, now set everything up using CDO and using the CC opetion as an audit trail.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Set OWA language and time zone in Exchange for individuals, all users or per database.
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now