Envoyer des courriels à partir d'Access 2007 avec Lotus 8.5

0

J'ai ce code ci-dessous. Il enregistre le courrier électronique avec tous les reçus, mais il n'envoie que le premier reçu;

Sur le dossier envoyé de Lotus -> [email protected]; [email protected]

À la fin de la réception -> [email protected]; tester

Le code est;

rst! [Email] -> test @ test.com, test @ test2.com Il peut être 1, 2 ou plus;

Private Sub Command43_Click()
Dim rst As DAO.Recordset
Dim strBody
Dim Sendto1, Esubject As String
Dim Session As Object
Dim EmbedObj1 As Object
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("L:\DOCS.txt", ForReading)
strBody = f.ReadAll
f.Close
Set rst = Form_PD_S_Docs.RecordsetClone
While Not rst.EOF
Sendto1 = rst![Email]
Esubject = "Teste" & " " & rst![SAP] & " " & rst![Nome]
SendEmail Sendto1, Esubject, strBody2
rst.MoveNext
Wend
End Sub

----- / ------

Public Sub SendEmail(ByVal pvTo, ByVal pvSubj, ByVal pvBody)
Dim Session As Object
Dim EmbedObj1 As Object
On Error GoTo errorhandler1
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " 
"))) & ".nsf"
Set Maildb = Session.GetDatabase("", MailDbName)
If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If
Set MailDoc = Maildb.CreateDocument
MailDoc.Form = "Memo"
With MailDoc
    .SendTo = pvTo
    .Subject = pvSubj
    .Body = pvBody
    .PostedDate = Now()
    .SaveMessageOnSend = True
    .Send 0, pvTo
End With
endit:
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj1 = Nothing
Exit Sub
errorhandler1:
MsgBox Err.Description, , Err
Resume endit
End Sub
Valter Canhão
la source
Veuillez modifier votre question et formater votre code correctement
DavidPostill
J'ai corrigé mes questions puis-je vous aider?
Valter Canhão
À quoi ressemble d'abord! [Email]? Il semble que "SendEmail Sendto1, Esubject, strBody2" devrait envoyer un email pour chaque adresse, non?
Zach
J'ai d'abord! [Email] c'est un champ de texte sur l'accès que j'ai essayé de mettre sur le sujet et tous les emails sont corrects. Mon principal problème est pourquoi Lotus ne transmet qu'un seul bon courriel. Il semble que le deuxième @ n'est pas lu par Lotus. Le script doit envoyer le même message à tous les courriels de Sendto1.
Valter Canhão

Réponses:

0

Très probablement, votre variable pvtTo est une chaîne contenant une liste séparée par des virgules. Ai-je raison?

La propriété SendTo de la classe NotesDocument doit être un tableau de chaînes et non une liste séparée par des virgules. Il devrait y avoir une adresse dans chaque élément du tableau.

rhsatrhs
la source
Oui tu as raison. Le champ premier! [Email] contient de nombreux emails séparés par des virgules. Comment puis-je faire un tableau de rst! [Email]
Valter Canhão 23/09/2014
Comme ceci: .SendTo = Split (pvtTo, ",")
rhsatrhs
Toujours la même chose est-il possible que le deuxième lotus coupe tous les courriels des autres?
Valter Canhão
Quel est le séparateur dans votre chaîne pvtTo? Est-ce une virgule? Ou est-ce un point-virgule? La syntaxe divisée que je vous ai donnée supposait que c'était une virgule. Pouvez-vous assigner Split (pvtTo, ",") à une variable et la regarder dans un débogueur?
rhsatrhs
1
J'ai le réparer Si je mets .SendTo = Split(pvtTo,",")Lotus enregistre toujours tous les courriels mais que seul le premier le reçoit, j'ai changé de ligne -> Sendto1 = rst![Email]en Sendto1 = Split(rst![Email], ",", 1)et ça
marche bien