23. maj 2001 - 09:38Der er
8 kommentarer og 1 løsning
e-mail til flere modtagere
Jeg har lavet et program til afsendelse af e-mails. Det virker dog kun når der er én modtager. Hvordan får jeg lavet rutinen, så den kan klare flere modtagere. Jeg vil stadig anvende MAPI-kontrol.
Public Sub SendPost() On Error GoTo fejl Const MESSAGE_COMPOSE As Integer = 6
frmpost.MAPISession1.LogonUI = True frmpost.MAPISession1.NewSession = False frmpost.MAPISession1.SignOn If Not Err = 0 Then MsgBox \"Logon til e-post systemet fejlede\" Screen.MousePointer = 0 Exit Sub End If frmpost.MAPIMessages1.SessionID = frmpost.MAPISession1.SessionID frmpost.MAPIMessages1.Action = MESSAGE_COMPOSE frmpost.MAPIMessages1.MsgIndex = -1 frmpost.MAPIMessages1.RecipDisplayName = Trim(ModtagerAfPost) frmpost.MAPIMessages1.Send True frmpost.MAPISession1.SignOff Exit Sub fejl: If Err = 32003 Then Exit Sub Msg = \"Der er sket en fejl. Fejl nr. \" MsgBox Msg & Err & \". \", vbInformation, Err.Description frmpost.MAPISession1.SignOff End Sub
Jeg går ud fra at du har en liste ove de modtagere som du skal sende til.
Hvis du giver den metode en parameter så kan du kalde den lige så mange gange som der er modtagere, så undgår du også at alle kan se hvem der har fået din mail da der bliver genereret en pr. modtager.
F.eks.: Public Sub SendPost(byval sModtager as String) On Error GoTo fejl Const MESSAGE_COMPOSE As Integer = 6
ModtagerAfPost = sModtager \'Bemærk parameter!
frmpost.MAPISession1.LogonUI = True frmpost.MAPISession1.NewSession = False frmpost.MAPISession1.SignOn If Not Err = 0 Then MsgBox \"Logon til e-post systemet fejlede\" Screen.MousePointer = 0 Exit Sub End If frmpost.MAPIMessages1.SessionID = frmpost.MAPISession1.SessionID frmpost.MAPIMessages1.Action = MESSAGE_COMPOSE frmpost.MAPIMessages1.MsgIndex = -1 frmpost.MAPIMessages1.RecipDisplayName = Trim(ModtagerAfPost) frmpost.MAPIMessages1.Send True frmpost.MAPISession1.SignOff Exit Sub fejl: If Err = 32003 Then Exit Sub Msg = \"Der er sket en fejl. Fejl nr. \" MsgBox Msg & Err & \". \", vbInformation, Err.Description frmpost.MAPISession1.SignOff End Sub
Hvis dine modtagere ligger i et array er det bare at kalde metoden:
F.eks.: for i=0 to ubound(modtagere) call SendPost(modtagere(i)) next i
Det dit program gør, er at sende lige så mange e-mails afsted som der er personer. Det jeg ønsker er at alle personerne skal stå som modtagere af den samme e-mail.
Jo da her er den. Jeg kan desværre kun få den til at sende til omkring 20 adresser.
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 ... \'Grpst indeholder postadresser. For I = 1 To GrpTæl If I = GrpTæl Then postSaml = postSaml & Grpst(I) Else postSaml = postSaml & Grpst(I) & \",\" End If Next
Dim stropen: Dim lRet stropen = \"mailto:\" + postSaml lRet = ShellExecute(hwnd, \"open\", stropen, vbNull, vbNull, 1)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.