Solved

Emailing several recipients

Posted on 2003-12-05
9
245 Views
Last Modified: 2010-05-01
My app generates a string as follows:
EmailList = "John <john@aol.com>;
                  Paul <paul@xyz.com>;
                  Mary <mary@abc.com>"

It then calls the default email browser as follows:

in a module:

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) _    As Long

in my procedure:

    WriteEmail = ShellExecute(frmFriendsDirectory.hwnd, "open", "Mailto:", EmailList, "", 1)

This works fine if EmailList has only one address. If it has multiple addresses as above, only the first one is entered.

I have also tried leaving it blank, as follows:

    WriteEmail = ShellExecute(frmFriendsDirectory.hwnd, "open", "Mailto:", "", "", 1)

and then using

SendKeys EmailList, True

this doesn't work either. The closest I get is if I put it on the clipboard as follows:

    Clipboard.Clear
    Clipboard.SetText EmailList

and then click "Paste" on the browser. In Outlook Express, the keyboard command for Paste is CTRL + V. I also tried Sendkeys "^V" to send that. No luck.

Any suggestions ?

0
Comment
Question by:gron
  • 5
  • 3
9 Comments
 
LVL 16

Accepted Solution

by:
Richie_Simonetti earned 125 total points
Comment Utility
Put each entri separated by commas, not as parameter but inside lpFile.
I mean, composse all lpFile parameter like:

"mailto:entry-1,entry-2,entry-n&subject=......"
0
 
LVL 1

Author Comment

by:gron
Comment Utility
Richie:

This appears to work only if I use the format:

"Mailto:mary@abc.com,john@aol.com,steve@xyz.ca"

But if I use the format:

"Mailto:Mary <mary@abc.com>,John <john@aol.com>, Steve <steve@xyz.ca>"

it only registers the first one. Is there a format where I can enter the name and address both ?
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
Comment Utility
If you have that list in your address book, you could use name only.
I think you cannot use both with mailto.
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
Comment Utility
Also, if you really want to do in a strong way, cahnge your approcah and use this exelent/free component:
http://www.freevbcode.com/ShowCode.Asp?ID=109
0
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

 

Expert Comment

by:vwdan2001
Comment Utility
Have you played around with CDO or CDONTS?

There is a component I am currently using with exchange srvr. Its cheap and only uses about 3-5 lines of code. http://www.dimac.net

There are several options with it.
0
 
LVL 1

Author Comment

by:gron
Comment Utility
I have opted for the first suggestion with email addresses only.
I am still with Vb5, so some of the other options are not available to me.
Thanks.
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
Comment Utility
what do you mean with other options?
0
 
LVL 1

Author Comment

by:gron
Comment Utility
I meant your other suggestion:

http://www.freevbcode.com/ShowCode.Asp?ID=109

I looked at that, and it is in Vb6. Also, it is far more complex and featured than I require.

Also the suggestion from vwdan2001.
0
 
LVL 16

Expert Comment

by:Richie_Simonetti
Comment Utility
No problem, code could be used in VB5 too!
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

There are many ways to remove duplicate entries in an SQL or Access database. Most make you temporarily insert an ID field, make a temp table and copy data back and forth, and/or are slow. Here is an easy way in VB6 using ADO to remove duplicate row…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

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

14 Experts available now in Live!

Get 1:1 Help Now