now for the bigger problam :)
I know you pepole hate using OE for sending emails, but its user friendly and its needed in this case...
I found on this forum, a code that sends email using OE with attachments.
it works, but with two problams... first, its directly sends the email, without opening the OE "editing mode" of the email, like when you use the DoCmd.SendObjec t.
this is the smaller problams though...
the bigger problam which I think is connected to the first one, is that when it send the email it also neutralize access completely untill the email is sent. and if I attach a big file (which will be always in my db case...) you can't continue working on the db... : \
maybe I need a completly diffrent code, but I'll paste what I'm trying anyway, maybe it will help someone else :)
on a module: -
Option Compare Database
-
Option Explicit
-
-
-
Private Type MAPIRecip
-
Reserved As Long
-
RecipClass As Long
-
Name As String
-
Address As String
-
EIDSize As Long
-
EntryID As String
-
End Type
-
-
Private Type MAPIFileTag
-
Reserved As Long
-
TagLength As Long
-
Tag() As Byte
-
EncodingLength As Long
-
Encoding() As Byte
-
End Type
-
-
Private Type MAPIFile
-
Reserved As Long
-
Flags As Long
-
Position As Long
-
PathName As String
-
FileName As String
-
FileType As Long
-
End Type
-
-
Private Type MAPIMessage
-
Reserved As Long
-
Subject As String
-
NoteText As String
-
MessageType As String
-
DateReceived As String
-
ConversationID As String
-
Originator As Long
-
Flags As Long
-
RecipCount As Long
-
Recipients As Long
-
FileCount As Long
-
Files As Long
-
End Type
-
-
Private Declare Function MAPISendMail Lib "c:\program files\outlook express\msoe.dll" (ByVal Session As Long, ByVal UIParam As Long, ByRef message As MAPIMessage, ByVal Flags As Long, ByVal Reserved As Long) As Long
-
Private Const MAPI_E_NO_LIBRARY = 999
-
Private Const MAPI_E_INVALID_PARAMETER = 998
-
-
Private Const MAPI_ORIG = 0
-
Private Const MAPI_TO = 1
-
Private Const MAPI_CC = 2
-
Private Const MAPI_BCC = 3
-
-
Private Const MAPI_UNREAD = 1
-
Private Const MAPI_RECEIPT_REQUESTED = 2
-
Private Const MAPI_SENT = 4
-
-
Private Const MAPI_LOGON_UI = &H1
-
Private Const MAPI_NEW_SESSION = &H2
-
Private Const MAPI_DIALOG = &H8
-
Private Const MAPI_UNREAD_ONLY = &H20
-
Private Const MAPI_ENVELOPE_ONLY = &H40
-
Private Const MAPI_PEEK = &H80
-
Private Const MAPI_GUARANTEE_FIFO = &H100
-
Private Const MAPI_BODY_AS_FILE = &H200
-
Private Const MAPI_AB_NOMODIFY = &H400
-
Private Const MAPI_SUPPRESS_ATTAch = &H800
-
Private Const MAPI_FORCE_DOWNLOAD = &H1000
-
-
Private Const MAPI_OLE = &H1
-
Private Const MAPI_OLE_STATIC = &H2
-
-
-
Dim mAf() As MAPIFile
-
Dim mAr() As MAPIRecip
-
Dim lAr As Long
-
Dim lAf As Long
-
Dim mM As MAPIMessage
-
Dim aErrors(0 To 26) As String
-
-
Public Sub Class_Initialize()
-
aErrors(0) = "Success"
-
aErrors(1) = "User Abort"
-
aErrors(2) = "Failure"
-
aErrors(3) = "LogIn Failure"
-
aErrors(4) = "Disk Full"
-
aErrors(5) = "Insufficient Memory"
-
aErrors(6) = "Block Too Small"
-
aErrors(8) = "Too Many Sessions"
-
aErrors(9) = "Too Many Files"
-
aErrors(10) = "Too Many Recipients"
-
aErrors(11) = "Attachment No Found"
-
aErrors(12) = "Attachment Open Failure"
-
aErrors(13) = "Attachment Write Failure"
-
aErrors(14) = "Unknown Recipient"
-
aErrors(15) = "Bad Recipient"
-
aErrors(16) = "No Messages"
-
aErrors(17) = "Invalid Message"
-
aErrors(18) = "Text Too Large"
-
aErrors(19) = "Invalid Session"
-
aErrors(20) = "Type Not Suppported"
-
aErrors(21) = "Ambiguous Recipient"
-
aErrors(22) = "Message in Use"
-
aErrors(23) = "Network Failure"
-
aErrors(24) = "Invalid Edit Fields"
-
aErrors(25) = "Invalid Recipient"
-
aErrors(26) = "Not Supported"
-
End Sub
-
-
Public Sub BCCAddressAdd(ByVal strAddress As String)
-
RecipientAdd MAPI_BCC, , strAddress
-
End Sub
-
-
Public Sub BCCNameAdd(ByVal strName As String)
-
RecipientAdd MAPI_BCC, strName
-
End Sub
-
-
Public Sub CCAddressAdd(ByVal strAddress As String)
-
RecipientAdd MAPI_CC, , strAddress
-
End Sub
-
-
Public Sub CCNameAdd(ByVal strName As String)
-
RecipientAdd MAPI_CC, strName
-
End Sub
-
-
Public Sub MessageIs(ByVal strNoteText As String)
-
mM.NoteText = strNoteText
-
End Sub
-
-
Public Sub SubjectIs(ByVal strSubject As String)
-
mM.Subject = strSubject
-
End Sub
-
-
Public Sub ToAddressAdd(ByVal strAddress As String)
-
RecipientAdd MAPI_TO, , strAddress
-
End Sub
-
-
Public Sub ToNameAdd(ByVal strName As String)
-
RecipientAdd MAPI_TO, strName
-
End Sub
-
-
Public Sub FileAdd(ByVal strPathName As String)
-
Dim f As MAPIFile
-
With f
-
.PathName = StrConv(strPathName, vbFromUnicode)
-
End With
-
ReDim Preserve mAf(lAf)
-
mAf(lAf) = f
-
lAf = lAf + 1
-
End Sub
-
-
Public Sub Send()
-
Dim r As Long
-
With mM
-
If lAf > 0 Then
-
.FileCount = lAf
-
.Files = VarPtr(mAf(0))
-
End If
-
If lAr > 0 Then
-
.RecipCount = lAr
-
.Recipients = VarPtr(mAr(0))
-
r = MAPISendMail(0, 0, mM, 0, 0)
-
If r <> 0 Then MsgBox aErrors(r)
-
End If
-
End With
-
End Sub
-
-
Private Sub RecipientAdd(ByVal lngType As Long, Optional ByVal strName As String, Optional ByVal strAddress As String)
-
Dim r As MAPIRecip
-
r.RecipClass = lngType
-
If strName <> "" Then r.Name = StrConv(strName, vbFromUnicode)
-
If strAddress <> "" Then r.Address = StrConv(strAddress, vbFromUnicode)
-
ReDim Preserve mAr(lAr)
-
mAr(lAr) = r
-
lAr = lAr + 1
-
End Sub
-
-
1 2721 ADezii 8,834
Recognized Expert Expert
now for the bigger problam :)
I know you pepole hate using OE for sending emails, but its user friendly and its needed in this case...
I found on this forum, a code that sends email using OE with attachments.
it works, but with two problams... first, its directly sends the email, without opening the OE "editing mode" of the email, like when you use the DoCmd.SendObjec t.
this is the smaller problams though...
the bigger problam which I think is connected to the first one, is that when it send the email it also neutralize access completely untill the email is sent. and if I attach a big file (which will be always in my db case...) you can't continue working on the db... : \
maybe I need a completly diffrent code, but I'll paste what I'm trying anyway, maybe it will help someone else :)
on a module: -
Option Compare Database
-
Option Explicit
-
-
-
Private Type MAPIRecip
-
Reserved As Long
-
RecipClass As Long
-
Name As String
-
Address As String
-
EIDSize As Long
-
EntryID As String
-
End Type
-
-
Private Type MAPIFileTag
-
Reserved As Long
-
TagLength As Long
-
Tag() As Byte
-
EncodingLength As Long
-
Encoding() As Byte
-
End Type
-
-
Private Type MAPIFile
-
Reserved As Long
-
Flags As Long
-
Position As Long
-
PathName As String
-
FileName As String
-
FileType As Long
-
End Type
-
-
Private Type MAPIMessage
-
Reserved As Long
-
Subject As String
-
NoteText As String
-
MessageType As String
-
DateReceived As String
-
ConversationID As String
-
Originator As Long
-
Flags As Long
-
RecipCount As Long
-
Recipients As Long
-
FileCount As Long
-
Files As Long
-
End Type
-
-
Private Declare Function MAPISendMail Lib "c:\program files\outlook express\msoe.dll" (ByVal Session As Long, ByVal UIParam As Long, ByRef message As MAPIMessage, ByVal Flags As Long, ByVal Reserved As Long) As Long
-
Private Const MAPI_E_NO_LIBRARY = 999
-
Private Const MAPI_E_INVALID_PARAMETER = 998
-
-
Private Const MAPI_ORIG = 0
-
Private Const MAPI_TO = 1
-
Private Const MAPI_CC = 2
-
Private Const MAPI_BCC = 3
-
-
Private Const MAPI_UNREAD = 1
-
Private Const MAPI_RECEIPT_REQUESTED = 2
-
Private Const MAPI_SENT = 4
-
-
Private Const MAPI_LOGON_UI = &H1
-
Private Const MAPI_NEW_SESSION = &H2
-
Private Const MAPI_DIALOG = &H8
-
Private Const MAPI_UNREAD_ONLY = &H20
-
Private Const MAPI_ENVELOPE_ONLY = &H40
-
Private Const MAPI_PEEK = &H80
-
Private Const MAPI_GUARANTEE_FIFO = &H100
-
Private Const MAPI_BODY_AS_FILE = &H200
-
Private Const MAPI_AB_NOMODIFY = &H400
-
Private Const MAPI_SUPPRESS_ATTAch = &H800
-
Private Const MAPI_FORCE_DOWNLOAD = &H1000
-
-
Private Const MAPI_OLE = &H1
-
Private Const MAPI_OLE_STATIC = &H2
-
-
-
Dim mAf() As MAPIFile
-
Dim mAr() As MAPIRecip
-
Dim lAr As Long
-
Dim lAf As Long
-
Dim mM As MAPIMessage
-
Dim aErrors(0 To 26) As String
-
-
Public Sub Class_Initialize()
-
aErrors(0) = "Success"
-
aErrors(1) = "User Abort"
-
aErrors(2) = "Failure"
-
aErrors(3) = "LogIn Failure"
-
aErrors(4) = "Disk Full"
-
aErrors(5) = "Insufficient Memory"
-
aErrors(6) = "Block Too Small"
-
aErrors(8) = "Too Many Sessions"
-
aErrors(9) = "Too Many Files"
-
aErrors(10) = "Too Many Recipients"
-
aErrors(11) = "Attachment No Found"
-
aErrors(12) = "Attachment Open Failure"
-
aErrors(13) = "Attachment Write Failure"
-
aErrors(14) = "Unknown Recipient"
-
aErrors(15) = "Bad Recipient"
-
aErrors(16) = "No Messages"
-
aErrors(17) = "Invalid Message"
-
aErrors(18) = "Text Too Large"
-
aErrors(19) = "Invalid Session"
-
aErrors(20) = "Type Not Suppported"
-
aErrors(21) = "Ambiguous Recipient"
-
aErrors(22) = "Message in Use"
-
aErrors(23) = "Network Failure"
-
aErrors(24) = "Invalid Edit Fields"
-
aErrors(25) = "Invalid Recipient"
-
aErrors(26) = "Not Supported"
-
End Sub
-
-
Public Sub BCCAddressAdd(ByVal strAddress As String)
-
RecipientAdd MAPI_BCC, , strAddress
-
End Sub
-
-
Public Sub BCCNameAdd(ByVal strName As String)
-
RecipientAdd MAPI_BCC, strName
-
End Sub
-
-
Public Sub CCAddressAdd(ByVal strAddress As String)
-
RecipientAdd MAPI_CC, , strAddress
-
End Sub
-
-
Public Sub CCNameAdd(ByVal strName As String)
-
RecipientAdd MAPI_CC, strName
-
End Sub
-
-
Public Sub MessageIs(ByVal strNoteText As String)
-
mM.NoteText = strNoteText
-
End Sub
-
-
Public Sub SubjectIs(ByVal strSubject As String)
-
mM.Subject = strSubject
-
End Sub
-
-
Public Sub ToAddressAdd(ByVal strAddress As String)
-
RecipientAdd MAPI_TO, , strAddress
-
End Sub
-
-
Public Sub ToNameAdd(ByVal strName As String)
-
RecipientAdd MAPI_TO, strName
-
End Sub
-
-
Public Sub FileAdd(ByVal strPathName As String)
-
Dim f As MAPIFile
-
With f
-
.PathName = StrConv(strPathName, vbFromUnicode)
-
End With
-
ReDim Preserve mAf(lAf)
-
mAf(lAf) = f
-
lAf = lAf + 1
-
End Sub
-
-
Public Sub Send()
-
Dim r As Long
-
With mM
-
If lAf > 0 Then
-
.FileCount = lAf
-
.Files = VarPtr(mAf(0))
-
End If
-
If lAr > 0 Then
-
.RecipCount = lAr
-
.Recipients = VarPtr(mAr(0))
-
r = MAPISendMail(0, 0, mM, 0, 0)
-
If r <> 0 Then MsgBox aErrors(r)
-
End If
-
End With
-
End Sub
-
-
Private Sub RecipientAdd(ByVal lngType As Long, Optional ByVal strName As String, Optional ByVal strAddress As String)
-
Dim r As MAPIRecip
-
r.RecipClass = lngType
-
If strName <> "" Then r.Name = StrConv(strName, vbFromUnicode)
-
If strAddress <> "" Then r.Address = StrConv(strAddress, vbFromUnicode)
-
ReDim Preserve mAr(lAr)
-
mAr(lAr) = r
-
lAr = lAr + 1
-
End Sub
-
-
It could be the nature of the code that it is executed synchronously, meaning all other processes are suspended until current code completion. Sign in to post your reply or Sign up for a free account.
Similar topics |
by: ian |
last post by:
Hi,
I'm a newbie (oh no I can here you say.... another one...)
How can I get Python to send emails using the default windows email
client (eg outlook express)?
I thought I could just do the following
import win32com.client
|
by: David Burson |
last post by:
Hi,
I have a VB.NET windows app that needs to automatically send a simple text
email when my users run a new version of the app for the first time. I
thought this would be simple, but after days of reading posts and testing, I
see it is not - unless I'm missing something? I'm not an email guru.
All of my users will be running at least Windows 2000, most on XP sp2. Some
of my users will have Outlook, many will be using Outlook...
|
by: Ronny Sigo |
last post by:
Hello all,
I a struggling for a few days now to find a way to send automated mail. I
succeeded except that MS Outlook always gives me those 2 stupid warnings
that 1) a "program tries to get access
to the emailadresses in the contactlist - and wether I want to allow this"
and 2) That a program is trying to send emails on my behalf - and wether I
want to allow this. ... I have tried to use the redemption package but
obviously I do not...
|
by: Jay McGrath |
last post by:
Help - trying to send a simple text email with with as little user
intervention.
I am trying to create a button in my Access application that will
automatically send a simple text email. It works except that I have
two warning nuisances:
1) Program is trying to access email Addresses you have stored in
Outlook. Allow access for ...
2) A program is trying to automatically send email on your behalf ...
Heck, I am only trying to a send...
|
by: Marcus |
last post by:
I tried DoCmd.SendObject on Access 2002 with Win2000 and no worries, it
works. But, DoCmd.SendObject does not work on Access 2002 using WinXP.
Wondering if there is a work around?
Marcus
******
| |
by: roni |
last post by:
i dont like to use ocx controlx.
is there new dll for vb.net that do the job ? or newer code, to send email
throught outlook express.
|
by: cj |
last post by:
How can I get a button in VB to send the contents of a text box via
email in a manner similar to the "Send To\Mail Recipient" functionality
that you can select via right clicking a file in Windows Explorer?
I want the user to click a button and it lunch the users default email
client and put the contents of a multi line text box in the body of the
message and the contents of another text box in the title box and be
sitting there read for...
|
by: ManningFan |
last post by:
I built a nifty little SPAM killer with Access linking into Outlook
while I was at work the other day (boring day, loads of time to
kill...) but now I'd like to use it at home where we use Outlook
Express.
The big problem seems to be this missing reference:
microsoft outlook 11.0 object library
Is there anything similar for Outlook Express? I know that would just
be WAAY to easy and Microsoft tends to make things difficult, but I'm
|
by: Bibin |
last post by:
I want to send email via Outlook Express and not by Outlook in VB.NET (windows application). I also want to attach files with the email. The mail (in Outlook Express) needs to be displayed before sending the email.
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |