473,769 Members | 3,893 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Send email with outlook express 'editing mode'

59 New Member
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:

Expand|Select|Wrap|Line Numbers
  1. Option Compare Database
  2. Option Explicit
  3.  
  4.  
  5. Private Type MAPIRecip
  6. Reserved As Long
  7. RecipClass As Long
  8. Name As String
  9. Address As String
  10. EIDSize As Long
  11. EntryID As String
  12. End Type
  13.  
  14. Private Type MAPIFileTag
  15. Reserved As Long
  16. TagLength As Long
  17. Tag() As Byte
  18. EncodingLength As Long
  19. Encoding() As Byte
  20. End Type
  21.  
  22. Private Type MAPIFile
  23. Reserved As Long
  24. Flags As Long
  25. Position As Long
  26. PathName As String
  27. FileName As String
  28. FileType As Long
  29. End Type
  30.  
  31. Private Type MAPIMessage
  32. Reserved As Long
  33. Subject As String
  34. NoteText As String
  35. MessageType As String
  36. DateReceived As String
  37. ConversationID As String
  38. Originator As Long
  39. Flags As Long
  40. RecipCount As Long
  41. Recipients As Long
  42. FileCount As Long
  43. Files As Long
  44. End Type
  45.  
  46. 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
  47. Private Const MAPI_E_NO_LIBRARY = 999
  48. Private Const MAPI_E_INVALID_PARAMETER = 998
  49.  
  50. Private Const MAPI_ORIG = 0
  51. Private Const MAPI_TO = 1
  52. Private Const MAPI_CC = 2
  53. Private Const MAPI_BCC = 3
  54.  
  55. Private Const MAPI_UNREAD = 1
  56. Private Const MAPI_RECEIPT_REQUESTED = 2
  57. Private Const MAPI_SENT = 4
  58.  
  59. Private Const MAPI_LOGON_UI = &H1
  60. Private Const MAPI_NEW_SESSION = &H2
  61. Private Const MAPI_DIALOG = &H8
  62. Private Const MAPI_UNREAD_ONLY = &H20
  63. Private Const MAPI_ENVELOPE_ONLY = &H40
  64. Private Const MAPI_PEEK = &H80
  65. Private Const MAPI_GUARANTEE_FIFO = &H100
  66. Private Const MAPI_BODY_AS_FILE = &H200
  67. Private Const MAPI_AB_NOMODIFY = &H400
  68. Private Const MAPI_SUPPRESS_ATTAch = &H800
  69. Private Const MAPI_FORCE_DOWNLOAD = &H1000
  70.  
  71. Private Const MAPI_OLE = &H1
  72. Private Const MAPI_OLE_STATIC = &H2
  73.  
  74.  
  75. Dim mAf() As MAPIFile
  76. Dim mAr() As MAPIRecip
  77. Dim lAr As Long
  78. Dim lAf As Long
  79. Dim mM As MAPIMessage
  80. Dim aErrors(0 To 26) As String
  81.  
  82. Public Sub Class_Initialize()
  83. aErrors(0) = "Success"
  84. aErrors(1) = "User Abort"
  85. aErrors(2) = "Failure"
  86. aErrors(3) = "LogIn Failure"
  87. aErrors(4) = "Disk Full"
  88. aErrors(5) = "Insufficient Memory"
  89. aErrors(6) = "Block Too Small"
  90. aErrors(8) = "Too Many Sessions"
  91. aErrors(9) = "Too Many Files"
  92. aErrors(10) = "Too Many Recipients"
  93. aErrors(11) = "Attachment No Found"
  94. aErrors(12) = "Attachment Open Failure"
  95. aErrors(13) = "Attachment Write Failure"
  96. aErrors(14) = "Unknown Recipient"
  97. aErrors(15) = "Bad Recipient"
  98. aErrors(16) = "No Messages"
  99. aErrors(17) = "Invalid Message"
  100. aErrors(18) = "Text Too Large"
  101. aErrors(19) = "Invalid Session"
  102. aErrors(20) = "Type Not Suppported"
  103. aErrors(21) = "Ambiguous Recipient"
  104. aErrors(22) = "Message in Use"
  105. aErrors(23) = "Network Failure"
  106. aErrors(24) = "Invalid Edit Fields"
  107. aErrors(25) = "Invalid Recipient"
  108. aErrors(26) = "Not Supported"
  109. End Sub
  110.  
  111. Public Sub BCCAddressAdd(ByVal strAddress As String)
  112.     RecipientAdd MAPI_BCC, , strAddress
  113. End Sub
  114.  
  115. Public Sub BCCNameAdd(ByVal strName As String)
  116.     RecipientAdd MAPI_BCC, strName
  117. End Sub
  118.  
  119. Public Sub CCAddressAdd(ByVal strAddress As String)
  120.     RecipientAdd MAPI_CC, , strAddress
  121. End Sub
  122.  
  123. Public Sub CCNameAdd(ByVal strName As String)
  124.     RecipientAdd MAPI_CC, strName
  125. End Sub
  126.  
  127. Public Sub MessageIs(ByVal strNoteText As String)
  128.     mM.NoteText = strNoteText
  129. End Sub
  130.  
  131. Public Sub SubjectIs(ByVal strSubject As String)
  132.     mM.Subject = strSubject
  133. End Sub
  134.  
  135. Public Sub ToAddressAdd(ByVal strAddress As String)
  136.     RecipientAdd MAPI_TO, , strAddress
  137. End Sub
  138.  
  139. Public Sub ToNameAdd(ByVal strName As String)
  140.     RecipientAdd MAPI_TO, strName
  141. End Sub
  142.  
  143. Public Sub FileAdd(ByVal strPathName As String)
  144.     Dim f As MAPIFile
  145. With f
  146.     .PathName = StrConv(strPathName, vbFromUnicode)
  147. End With
  148. ReDim Preserve mAf(lAf)
  149. mAf(lAf) = f
  150. lAf = lAf + 1
  151. End Sub
  152.  
  153. Public Sub Send()
  154. Dim r As Long
  155. With mM
  156.     If lAf > 0 Then
  157.         .FileCount = lAf
  158.         .Files = VarPtr(mAf(0))
  159.     End If
  160.     If lAr > 0 Then
  161.         .RecipCount = lAr
  162.         .Recipients = VarPtr(mAr(0))
  163.         r = MAPISendMail(0, 0, mM, 0, 0)
  164.         If r <> 0 Then MsgBox aErrors(r)
  165.     End If
  166. End With
  167. End Sub
  168.  
  169. Private Sub RecipientAdd(ByVal lngType As Long, Optional ByVal strName As String, Optional ByVal strAddress As String)
  170. Dim r As MAPIRecip
  171. r.RecipClass = lngType
  172. If strName <> "" Then r.Name = StrConv(strName, vbFromUnicode)
  173. If strAddress <> "" Then r.Address = StrConv(strAddress, vbFromUnicode)
  174. ReDim Preserve mAr(lAr)
  175. mAr(lAr) = r
  176. lAr = lAr + 1
  177. End Sub
  178.  
  179.  
Sep 8 '07 #1
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:

Expand|Select|Wrap|Line Numbers
  1. Option Compare Database
  2. Option Explicit
  3.  
  4.  
  5. Private Type MAPIRecip
  6. Reserved As Long
  7. RecipClass As Long
  8. Name As String
  9. Address As String
  10. EIDSize As Long
  11. EntryID As String
  12. End Type
  13.  
  14. Private Type MAPIFileTag
  15. Reserved As Long
  16. TagLength As Long
  17. Tag() As Byte
  18. EncodingLength As Long
  19. Encoding() As Byte
  20. End Type
  21.  
  22. Private Type MAPIFile
  23. Reserved As Long
  24. Flags As Long
  25. Position As Long
  26. PathName As String
  27. FileName As String
  28. FileType As Long
  29. End Type
  30.  
  31. Private Type MAPIMessage
  32. Reserved As Long
  33. Subject As String
  34. NoteText As String
  35. MessageType As String
  36. DateReceived As String
  37. ConversationID As String
  38. Originator As Long
  39. Flags As Long
  40. RecipCount As Long
  41. Recipients As Long
  42. FileCount As Long
  43. Files As Long
  44. End Type
  45.  
  46. 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
  47. Private Const MAPI_E_NO_LIBRARY = 999
  48. Private Const MAPI_E_INVALID_PARAMETER = 998
  49.  
  50. Private Const MAPI_ORIG = 0
  51. Private Const MAPI_TO = 1
  52. Private Const MAPI_CC = 2
  53. Private Const MAPI_BCC = 3
  54.  
  55. Private Const MAPI_UNREAD = 1
  56. Private Const MAPI_RECEIPT_REQUESTED = 2
  57. Private Const MAPI_SENT = 4
  58.  
  59. Private Const MAPI_LOGON_UI = &H1
  60. Private Const MAPI_NEW_SESSION = &H2
  61. Private Const MAPI_DIALOG = &H8
  62. Private Const MAPI_UNREAD_ONLY = &H20
  63. Private Const MAPI_ENVELOPE_ONLY = &H40
  64. Private Const MAPI_PEEK = &H80
  65. Private Const MAPI_GUARANTEE_FIFO = &H100
  66. Private Const MAPI_BODY_AS_FILE = &H200
  67. Private Const MAPI_AB_NOMODIFY = &H400
  68. Private Const MAPI_SUPPRESS_ATTAch = &H800
  69. Private Const MAPI_FORCE_DOWNLOAD = &H1000
  70.  
  71. Private Const MAPI_OLE = &H1
  72. Private Const MAPI_OLE_STATIC = &H2
  73.  
  74.  
  75. Dim mAf() As MAPIFile
  76. Dim mAr() As MAPIRecip
  77. Dim lAr As Long
  78. Dim lAf As Long
  79. Dim mM As MAPIMessage
  80. Dim aErrors(0 To 26) As String
  81.  
  82. Public Sub Class_Initialize()
  83. aErrors(0) = "Success"
  84. aErrors(1) = "User Abort"
  85. aErrors(2) = "Failure"
  86. aErrors(3) = "LogIn Failure"
  87. aErrors(4) = "Disk Full"
  88. aErrors(5) = "Insufficient Memory"
  89. aErrors(6) = "Block Too Small"
  90. aErrors(8) = "Too Many Sessions"
  91. aErrors(9) = "Too Many Files"
  92. aErrors(10) = "Too Many Recipients"
  93. aErrors(11) = "Attachment No Found"
  94. aErrors(12) = "Attachment Open Failure"
  95. aErrors(13) = "Attachment Write Failure"
  96. aErrors(14) = "Unknown Recipient"
  97. aErrors(15) = "Bad Recipient"
  98. aErrors(16) = "No Messages"
  99. aErrors(17) = "Invalid Message"
  100. aErrors(18) = "Text Too Large"
  101. aErrors(19) = "Invalid Session"
  102. aErrors(20) = "Type Not Suppported"
  103. aErrors(21) = "Ambiguous Recipient"
  104. aErrors(22) = "Message in Use"
  105. aErrors(23) = "Network Failure"
  106. aErrors(24) = "Invalid Edit Fields"
  107. aErrors(25) = "Invalid Recipient"
  108. aErrors(26) = "Not Supported"
  109. End Sub
  110.  
  111. Public Sub BCCAddressAdd(ByVal strAddress As String)
  112.     RecipientAdd MAPI_BCC, , strAddress
  113. End Sub
  114.  
  115. Public Sub BCCNameAdd(ByVal strName As String)
  116.     RecipientAdd MAPI_BCC, strName
  117. End Sub
  118.  
  119. Public Sub CCAddressAdd(ByVal strAddress As String)
  120.     RecipientAdd MAPI_CC, , strAddress
  121. End Sub
  122.  
  123. Public Sub CCNameAdd(ByVal strName As String)
  124.     RecipientAdd MAPI_CC, strName
  125. End Sub
  126.  
  127. Public Sub MessageIs(ByVal strNoteText As String)
  128.     mM.NoteText = strNoteText
  129. End Sub
  130.  
  131. Public Sub SubjectIs(ByVal strSubject As String)
  132.     mM.Subject = strSubject
  133. End Sub
  134.  
  135. Public Sub ToAddressAdd(ByVal strAddress As String)
  136.     RecipientAdd MAPI_TO, , strAddress
  137. End Sub
  138.  
  139. Public Sub ToNameAdd(ByVal strName As String)
  140.     RecipientAdd MAPI_TO, strName
  141. End Sub
  142.  
  143. Public Sub FileAdd(ByVal strPathName As String)
  144.     Dim f As MAPIFile
  145. With f
  146.     .PathName = StrConv(strPathName, vbFromUnicode)
  147. End With
  148. ReDim Preserve mAf(lAf)
  149. mAf(lAf) = f
  150. lAf = lAf + 1
  151. End Sub
  152.  
  153. Public Sub Send()
  154. Dim r As Long
  155. With mM
  156.     If lAf > 0 Then
  157.         .FileCount = lAf
  158.         .Files = VarPtr(mAf(0))
  159.     End If
  160.     If lAr > 0 Then
  161.         .RecipCount = lAr
  162.         .Recipients = VarPtr(mAr(0))
  163.         r = MAPISendMail(0, 0, mM, 0, 0)
  164.         If r <> 0 Then MsgBox aErrors(r)
  165.     End If
  166. End With
  167. End Sub
  168.  
  169. Private Sub RecipientAdd(ByVal lngType As Long, Optional ByVal strName As String, Optional ByVal strAddress As String)
  170. Dim r As MAPIRecip
  171. r.RecipClass = lngType
  172. If strName <> "" Then r.Name = StrConv(strName, vbFromUnicode)
  173. If strAddress <> "" Then r.Address = StrConv(strAddress, vbFromUnicode)
  174. ReDim Preserve mAr(lAr)
  175. mAr(lAr) = r
  176. lAr = lAr + 1
  177. End Sub
  178.  
  179.  
It could be the nature of the code that it is executed synchronously, meaning all other processes are suspended until current code completion.
Sep 9 '07 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

40
11896
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
0
3711
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...
2
9606
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...
1
5345
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...
7
1676
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 ******
4
7296
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.
15
8592
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...
2
3330
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
0
1185
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.
0
9589
marktang
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...
0
9423
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,...
0
9863
tracyyun
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...
0
8870
agi2029
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...
1
7408
isladogs
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...
0
6673
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();...
1
3958
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
2
3561
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2815
bsmnconsultancy
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...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.