A Microsoft Outlook email forum. Outlook Banter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » Outlook Banter forum » Microsoft Outlook Email Newsgroups » Outlook and VBA
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

Get smtp address on send



 
 
Thread Tools Search this Thread Display Modes
  #1  
Old January 29th 08, 09:47 AM posted to microsoft.public.outlook.program_vba
dkgb
external usenet poster
 
Posts: 7
Default Get smtp address on send

Hello,

I would like to save a copy of an email when it is sent if I can find the
SMTP address in a jet database. I have been successful (with the help of
this community) in getting the SMTP address of incoming messages using
Redemption and now I would like to get the addresses of outgoing messages.
However, in the code below, the email address is empty. Can anyone advise?

Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
Dim retval
retval = FileSendingEmail(item)
End Sub

Function FileSendingEmail(MyMail As Object)
'------Dimension variables----------------
Dim ws As Workspace
Dim db As Database
Dim rst As Recordset
Dim rstlog As Recordset
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim utils, PR_SMTP_ADDRESS, SenderEMail
Dim SafeMail
Dim ID As Long
Dim StrPath As String

'-----Open databases-----------------------
DBEngine.SystemDB = "z:\secured.mdw"
Set ws = DBEngine.CreateWorkspace("New", "xxx", "xxx")
Set db = ws.OpenDatabase("Z:\data.mdb")
Set rst = db.OpenRecordset("Suppliers", dbOpenDynaset)
Set rstlog = db.OpenRecordset("Supplierlog", dbOpenDynaset)
'-------------------------------------------------

StrPath = "J:\Documents\"

strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set olMail = MyMail
'On Error GoTo 0
Set SafeMail = CreateObject("Redemption.SafemailItem")
SafeMail.item = olMail

Set utils = CreateObject("Redemption.MAPIUtils")
PR_SMTP_ADDRESS = &H39FE001E
SenderEMail = utils.HrGetOneProp(olMail.MAPIOBJECT, PR_SMTP_ADDRESS)

rst.FindFirst "Email = '" & SenderEMail & "'"

If Not rst.NoMatch Then
'do stuff
End if
end function

Any ideas?
  #2  
Old January 29th 08, 02:33 PM posted to microsoft.public.outlook.program_vba
dkgb
external usenet poster
 
Posts: 7
Default Get smtp address on send

I forgot to mention that I am using Outlook 2002 SP3.

Thanks!

"dkgb" wrote:

Hello,

I would like to save a copy of an email when it is sent if I can find the
SMTP address in a jet database. I have been successful (with the help of
this community) in getting the SMTP address of incoming messages using
Redemption and now I would like to get the addresses of outgoing messages.
However, in the code below, the email address is empty. Can anyone advise?

Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
Dim retval
retval = FileSendingEmail(item)
End Sub

Function FileSendingEmail(MyMail As Object)
'------Dimension variables----------------
Dim ws As Workspace
Dim db As Database
Dim rst As Recordset
Dim rstlog As Recordset
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim utils, PR_SMTP_ADDRESS, SenderEMail
Dim SafeMail
Dim ID As Long
Dim StrPath As String

'-----Open databases-----------------------
DBEngine.SystemDB = "z:\secured.mdw"
Set ws = DBEngine.CreateWorkspace("New", "xxx", "xxx")
Set db = ws.OpenDatabase("Z:\data.mdb")
Set rst = db.OpenRecordset("Suppliers", dbOpenDynaset)
Set rstlog = db.OpenRecordset("Supplierlog", dbOpenDynaset)
'-------------------------------------------------

StrPath = "J:\Documents\"

strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set olMail = MyMail
'On Error GoTo 0
Set SafeMail = CreateObject("Redemption.SafemailItem")
SafeMail.item = olMail

Set utils = CreateObject("Redemption.MAPIUtils")
PR_SMTP_ADDRESS = &H39FE001E
SenderEMail = utils.HrGetOneProp(olMail.MAPIOBJECT, PR_SMTP_ADDRESS)

rst.FindFirst "Email = '" & SenderEMail & "'"

If Not rst.NoMatch Then
'do stuff
End if
end function

Any ideas?

  #3  
Old January 29th 08, 05:17 PM posted to microsoft.public.outlook.program_vba
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Get smtp address on send

The sending properties aren't added to an item until after it's sent, then
they are added by the transport. If you want addresses earlier than that use
the Recipients collection of the item and iterate each Recipient object and
get the email addresses that way.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"dkgb" wrote in message
...
Hello,

I would like to save a copy of an email when it is sent if I can find the
SMTP address in a jet database. I have been successful (with the help of
this community) in getting the SMTP address of incoming messages using
Redemption and now I would like to get the addresses of outgoing messages.
However, in the code below, the email address is empty. Can anyone
advise?

Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
Dim retval
retval = FileSendingEmail(item)
End Sub

Function FileSendingEmail(MyMail As Object)
'------Dimension variables----------------
Dim ws As Workspace
Dim db As Database
Dim rst As Recordset
Dim rstlog As Recordset
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim utils, PR_SMTP_ADDRESS, SenderEMail
Dim SafeMail
Dim ID As Long
Dim StrPath As String

'-----Open databases-----------------------
DBEngine.SystemDB = "z:\secured.mdw"
Set ws = DBEngine.CreateWorkspace("New", "xxx", "xxx")
Set db = ws.OpenDatabase("Z:\data.mdb")
Set rst = db.OpenRecordset("Suppliers", dbOpenDynaset)
Set rstlog = db.OpenRecordset("Supplierlog", dbOpenDynaset)
'-------------------------------------------------

StrPath = "J:\Documents\"

strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set olMail = MyMail
'On Error GoTo 0
Set SafeMail = CreateObject("Redemption.SafemailItem")
SafeMail.item = olMail

Set utils = CreateObject("Redemption.MAPIUtils")
PR_SMTP_ADDRESS = &H39FE001E
SenderEMail = utils.HrGetOneProp(olMail.MAPIOBJECT, PR_SMTP_ADDRESS)

rst.FindFirst "Email = '" & SenderEMail & "'"

If Not rst.NoMatch Then
'do stuff
End if
end function

Any ideas?


  #4  
Old February 9th 08, 06:49 PM posted to microsoft.public.outlook.program_vba
dkgb
external usenet poster
 
Posts: 7
Default Get smtp address on send

Thanks Ken,

I've tried that but it does not necessarily give me the SMTP address. I
need the SMPT address to look someting up in an Access database. Any other
suggestions? I think there must be a way using Redemption.

"Ken Slovak - [MVP - Outlook]" wrote:

The sending properties aren't added to an item until after it's sent, then
they are added by the transport. If you want addresses earlier than that use
the Recipients collection of the item and iterate each Recipient object and
get the email addresses that way.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"dkgb" wrote in message
...
Hello,

I would like to save a copy of an email when it is sent if I can find the
SMTP address in a jet database. I have been successful (with the help of
this community) in getting the SMTP address of incoming messages using
Redemption and now I would like to get the addresses of outgoing messages.
However, in the code below, the email address is empty. Can anyone
advise?

Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
Dim retval
retval = FileSendingEmail(item)
End Sub

Function FileSendingEmail(MyMail As Object)
'------Dimension variables----------------
Dim ws As Workspace
Dim db As Database
Dim rst As Recordset
Dim rstlog As Recordset
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim utils, PR_SMTP_ADDRESS, SenderEMail
Dim SafeMail
Dim ID As Long
Dim StrPath As String

'-----Open databases-----------------------
DBEngine.SystemDB = "z:\secured.mdw"
Set ws = DBEngine.CreateWorkspace("New", "xxx", "xxx")
Set db = ws.OpenDatabase("Z:\data.mdb")
Set rst = db.OpenRecordset("Suppliers", dbOpenDynaset)
Set rstlog = db.OpenRecordset("Supplierlog", dbOpenDynaset)
'-------------------------------------------------

StrPath = "J:\Documents\"

strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set olMail = MyMail
'On Error GoTo 0
Set SafeMail = CreateObject("Redemption.SafemailItem")
SafeMail.item = olMail

Set utils = CreateObject("Redemption.MAPIUtils")
PR_SMTP_ADDRESS = &H39FE001E
SenderEMail = utils.HrGetOneProp(olMail.MAPIOBJECT, PR_SMTP_ADDRESS)

rst.FindFirst "Email = '" & SenderEMail & "'"

If Not rst.NoMatch Then
'do stuff
End if
end function

Any ideas?



  #5  
Old February 9th 08, 11:03 PM posted to microsoft.public.outlook.program_vba
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Get smtp address on send

If you're using Redemption then RDOAddressEntry has an SMTPAddress property.
So does Redemption.AddressEntry. Use either RDORecipient.AddressEntry or
Recipient.AddressEntry to get the AddressEntry objects.
--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"dkgb" wrote in message
...
Thanks Ken,

I've tried that but it does not necessarily give me the SMTP address. I
need the SMPT address to look someting up in an Access database. Any
other
suggestions? I think there must be a way using Redemption.


  #6  
Old February 13th 08, 07:20 AM posted to microsoft.public.outlook.program_vba
dkgb
external usenet poster
 
Posts: 7
Default Get smtp address on send

I'm still struggling with this. Here is a code snippet. The comments detail
the the issues I am having with addressentry and SMTPAddress:

Function FileSendingEmail(MyMail As Object)
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim SafeMail
Dim SMTPAddress

strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set SafeMail = CreateObject("Redemption.SafemailItem")
SafeMail.item = myMail

SMTPAddress = SafeMail.Recipients(1).AddressEntry.SMTPAddress
‘Error “Index must be between 1 and count”

SMTPAddress = SafeMail.item.Recipients(1).AddressEntry.SMTPAddre ss
‘Generates security warning then error “object does not support this
property or method”


MsgBox SMTPAddress

End function


"Ken Slovak - [MVP - Outlook]" wrote:

If you're using Redemption then RDOAddressEntry has an SMTPAddress property.
So does Redemption.AddressEntry. Use either RDORecipient.AddressEntry or
Recipient.AddressEntry to get the AddressEntry objects.
--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"dkgb" wrote in message
...
Thanks Ken,

I've tried that but it does not necessarily give me the SMTP address. I
need the SMPT address to look someting up in an Access database. Any
other
suggestions? I think there must be a way using Redemption.



  #7  
Old February 13th 08, 04:27 PM posted to microsoft.public.outlook.program_vba
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Get smtp address on send

I don't anywhere in that code where you actually add any recipients to the
message. Add at least one recipient and save the item then get it as a
SafeMailItem object. Try that and see if it helps.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"dkgb" wrote in message
...
I'm still struggling with this. Here is a code snippet. The comments
detail
the the issues I am having with addressentry and SMTPAddress:

Function FileSendingEmail(MyMail As Object)
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim SafeMail
Dim SMTPAddress

strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set SafeMail = CreateObject("Redemption.SafemailItem")
SafeMail.item = myMail

SMTPAddress = SafeMail.Recipients(1).AddressEntry.SMTPAddress
‘Error “Index must be between 1 and count”

SMTPAddress = SafeMail.item.Recipients(1).AddressEntry.SMTPAddre ss
‘Generates security warning then error “object does not support this
property or method”


MsgBox SMTPAddress

End function


 




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Can't get SMTP address of contact that shares email address of an Exchange user Jeff Outlook and VBA 14 January 15th 09 01:50 AM
can't send mail, address mangled to "=SMTP:" d d Outlook - General Queries 1 November 20th 06 10:47 AM
޷ҵSMTPķǷȷ ʻ: 'POP3', : 'SMTP', Э: SMTP, ˿: 25, ȫ(SSL): , ׽ִ: 11001, : 0x800CCC0D John Smith Outlook Express 0 September 5th 06 02:15 AM
޷ҵsmtpķǷȷ ʻ: 'pop3', : 'smtp', Э: SMTP, ˿: 25, ȫ(SSL): , ׽ִ: 11001, : 0x800CCC0D Outlook Express 0 June 17th 06 10:44 AM
need to send rtf format using smtp and vb6 or vb.net aharbour Outlook and VBA 1 February 21st 06 02:56 PM


All times are GMT +1. The time now is 08:24 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.Search Engine Friendly URLs by vBSEO 2.4.0
Copyright 2004-2025 Outlook Banter.
The comments are property of their posters.