2009-08-12 8 views
0

Je suis en train de tester l'envoi d'un courrier électronique. J'ai copié le code ci-dessous à partir des fichiers d'aide:Recipients.Add génère une erreur d'exécution '287': Erreur définie par l'application ou définie par l'objet

Sub CreateHTMLMail() 
'Creates a new e-mail item and modifies its properties' 

    Dim olApp As Outlook.Application 
    Dim objMail As Outlook.MailItem 
    Set olApp = Outlook.Application 
    'Create e-mail item' 
    Set objMail = olApp.CreateItem(olMailItem) 

    With objMail 
     .Subject = "Test Message" 
     .Body = "Body Text" 
     .Recipients.Add "[email protected]" 
     .Recipients.ResolveAll 
     .Display 
    End With 
End Sub 

Je reçois une erreur d'exécution de message « 287 » avec la ligne .Recipients.Add en surbrillance. Qu'est-ce que je fais mal?

+0

Juste un petit commentaire ... si vous voulez que le message à envoyer automatiquement sans avoir à ouvrir outlook, il suffit d'utiliser la propriété '.Send' à la fin de votre' With' –

Répondre

1

Edit:
Comme les Etats OP dans son commentaire à ma première réponse, en changeant son code à

.Recipients.To = "[email protected]" 

résolu son problème. Je laisse ma première réponse ci-dessous, parce que quelqu'un peut apprendre de l'erreur que je fait, signalé par divo ;-)


réponse originale (attention, cela est faux!):

Essayez renfermant les paramètres passés à la Ajouter méthode avec parenthèses:
.Recipients.Add ("[email protected]")

+0

a essayé avec le même résultat – Steve

+2

changé. Recipients.Add ligne à .To = ("[email protected]) et qui a fonctionné – Steve

+0

@Treb: Comme il s'agit de VBA il n'y a pas besoin de crochets sur un appel de méthode.Ceci est l'un des plus grands malentendus dans VBA (qui en fait peut introduire des bugs) –

1

Essayez ceci:

toString = "[email protected];[email protected];[email protected]" 

    With OutMail 
     .To = toString 
     .Subject = "Hello Friends" 
     .Body = "Here is the email body" 
     .Send 
    End With 

Bien sûr, fonctionne avec plusieurs destinataires. Pour un seul destinataire, faire ceci:

toString = "[email protected]" 

Et ne pas oublier le .Send de faire réellement votre envoi de courrier électronique.

Questions connexes