Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

  • Initiateur de la discussion Initiateur de la discussion Raton
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Raton

XLDnaute Junior
Bonjour,
Je développe pour une entreprise un un système qui doit envoyer des mails. Comme l'entreptrise où je suis en stage utilise Lotus Note, les mail doivent être envoyés par celui-ci.
Mais voici mon problème, les mails sont bien envoyés mais à l'ouverture avec Lotus un message d'erreur apparait : "Illegal circular use : CoreEmailClasses". J'ai fouillé un peu partout et le plus proche que j'ai trouvé se trouve sur le site d'IBM (ici) Mais cela ne résoud pas mon problème, il n'y a en effet QUE les mails créé par Excel qui posent problème et pas ceux créé par Lotus. Je suppose que le problème vient donc de la "classe" de mail défini dans mon code
Code:
Call doc.AppendItemValue("Form", "Memo") 'affectation du type mail qui je suppose est la ligne posant problème
Mais voilà, je ne sais pas quoi faire à la place.

J'ai utilisé un code trouvé ici

Voici le code complet en .txt
La macro execute une mise à jour, quand dans les 2 feuilles elle trouve une concordance elle modifie certain éléments. Si en plus de la concordance l'élément est en prêt, elle envoit un mail à la personne.

Merci de votre aide
 

Pièces jointes

Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Bonjour,

Quelle version de Lotus Notes utilises tu ?
Tous les jours j'envoie des mails avec Lotus depuis Excel et cela fonctionne bien.
J'ai la version 7.02
 
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Bonjour,

je te joins un ancien code qui d'ailleurs marche mal avec notre Lotus 7 mais peut-être fonctionne t'il avec la version 6.5
Attention il faut changer l'adresse mail, le mot de passe et le serveur
Tiens moi au courant si ça fonctionne sinon je t'enverrai le code que j'utilise avec la version 7.0
 

Pièces jointes

Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Merci mais j'ai malheuresement un gros problème avec ce forum, je ne vois les réponses récentes qu'en prévisualisant un message bidon. Si j'ouvre mes discutions normalement, je ne vois pas les dernière réponses.
Malheureusement encore pour moi, quand on prévisualise, les réponses des autres personnes sont "allégées", c'est à dire que les fichier joints ne sont pas affichés.
Donc, merci à toi, mais il va falloir que j'attende mardi, au plus tot, pour pouvoir télécharger ton fichier

Enfin merci tout de même
 
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Bonjour Raton, Nauder,

Raton voici un code que j'utilise et qui ne me pose pas de problème 😉

Code:
Option Explicit
  
Sub SendNotesMsg()
  '*******************************************************************************
  Dim oSess As Object
  Dim oDB As Object
  Dim oDoc As Object
  Dim oItem As Object
    ' Variable TEXTE
  Dim ntsServer As String
  Dim ntsMailFile As String
  '
  Dim EMailSendTo As String
  Dim EMailCopyTo As String
  Dim EMailSubject As String
  Dim MailPJ As String
  Dim LotusSRV As String
  Dim WbkName As String
  
  '*****************************************************************************
  On Error GoTo err_SendNotesMsg
  ' Initialisation des variables
  EMailSendTo = "Adresse Mail d'envoi"
  EMailCopyTo = "Adresse Mail de copie"
  EMailSubject = "Monsujet d'envoi"
  
  ' Créer une nouvelles session Notes
  Set oSess = CreateObject("Notes.NotesSession")
  
  ' Récupérer le nom du serveur
  ntsServer = oSess.GetEnvironmentString("MailServer", True)
  
  'Acquière le nom du fichier mailfile de l'utilisateur courant dans Notes.ini
  ntsMailFile = oSess.GetEnvironmentString("MailFile", True)
  Set oDB = oSess.GetDatabase(ntsServer, ntsMailFile)
  Set oDoc = oDB.CreateDocument
  ' Définit les éléments à rajouter au message
  Set oItem = oDoc.createRichTextItem("BODY")
  
  oDoc.Form = "Memo"
  ' Préparer les destinataires
  oDoc.Sendto = EMailSendTo
  If Not IsMissing(EMailCopyTo) Then
    oDoc.Copyto = EMailCopyTo
  End If
  ' Préparer le sujet du message
  If Not IsMissing(EMailSubject) Then
    If EMailSubject <> "" Then oDoc.Subject = EMailSubject
  End If
  oDoc.FROM = oSess.CommonUserName
  oDoc.PostedDate = Date
  ' Pour avoir un accusé de réception
  oDoc.ReturnReceipt = "1"
  '
  ' Préparer les texte
  With oItem
    .AppendText "CECI EST MON TEXTE (LIGNE1)"
    .AddNewLine 1
    .AppendText "CECI EST MON TEXTE (LIGNE2)"
    .AddNewLine 2
  End With
  
  ' Créer la pièce jointe
  ' Ca peut être le classeur
  WbkName = ThisWorkbook.FullName
  'Attachement du classeur au mail
  Call oItem.embedObject(1454, "", WbkName, "")
  
  ' Ou Attachement d'un document
  'Call oItem.embedObject(1454, "", "Chemin et nom complet du doc","")
  
  ' Message de salutation
  oItem.AddNewLine 1
  oItem.AppendText "Cordialement"
    
  ' Envoyer le message
  oDoc.send False
  '
  MsgBox "Le message a été envoyé", vbInformation, "MESSAGE LOTUS ..."
  
exit_SendNotesMsg:
  On Error Resume Next
  Set oSess = Nothing
  Set oDB = Nothing
  Set oDoc = Nothing
  Set oItem = Nothing
  Exit Sub
  
err_SendNotesMsg:
  If Err.Number = 7225 Then
      MsgBox "Impossible d'attacher le fichier, vérifier le chemin!", vbCritical
  Else
      MsgBox "[" & Err.Number & "]: " & Err.Description
  End If
  MsgBox "Message non envoyé suite erreur!", vbCritical
  Resume exit_SendNotesMsg
End Sub

A+
 
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Bonjour BrunoM45,

J'ai regardé ton code car il m'intéresse mais le problème c'est que l'on ne peut passer le password en paramètre, Lotus Notes doit être ouvert ce qui manque de sécurité.
La fonction que j'ai proposé plus haut et qui me sert tous les jours à l'avantage de pouvoir envoyer des mails même si Lotus Notes est fermé.
As-tu exploré cette possibilité ?
A +
 
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Salut Renauder,

Oui j'ai bien regardé ton code, mais sur Lotus version 6.x j'ai un message d'erreur.

Sinon le fait de passer le password en paramètre est effectivement intéressant.

A+
 
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Bonjour,
Le code que j'ai fourni et pour lequel j'ai parlé de la version 6.5, je ne suis pas absolument sur concernant la version.
Je sais qu'avant que nous migrions vers la version 7 ce code fonctionnait mais peut-être pour une version antérieure à la 6.5.

PS : tu as bien changé le mot de passe dans le code.
Moi j'ai mis "password" mais certainement un autre mot de passe
L'adresse du serveur Domino doit aussi être changé et ne pas oublier d'ajouter la référence dont je ne rappelle plus le nom
 
Dernière édition:
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Le code de Renauder me semble pas très différent du mien, si ce n'est la manière de mettre du texte. Je vais essayer de changer pour entrer mon texte comme cela puisque apparement c'est le corps du mail qui pose problème.
Par contre, ce qui me semble le plus bizare, c'est que les mails envoyé par la macro et recu sur hotmail ne posent aucun probleme.
Merci à vous
 
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Ben cela ne marche pas non plus!
Pourriez-vous m'expliquer ce que signifie "Un masque calculé ne doit pas contenir de sous-masque calculés"
Merci
Salut Raton,

Voilà le message d'erreur que j'obtiens également 🙄

C'est pour cela que j'utilise le code que j'ai donné 😀
 
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Après quelque retouche dans Lotus, à la réception je n'ai plus que le message d'erreur parlant des "sous-masques" (il n'y a donc plus la 20e de illegal circular error), mais je l'ai quand même 6-8 fois!
Ton code Bruno pose problème aussi car il essaye d'envoyer le mail avec la boite d'une autre session. Je m'explique, il y a sur Lotus la possibilité de se connecter à partir de différents utilisateurs. Une fois une session ouverte, on peut voir +/- tous ce qu'il y a dans n'importe quel session, mais on ne peut pas envoyer de mail à partir d'une autre session. Donc, l'utilisateur A peut envoyer un mail à partir de la boite (pas l'adresse) de l'utilisateur B. Par contre avec ton code, cela pose un problème, il veut envoyer un mail à partir de la session ouverte via la boite par defaut ce qui ne fonctionne alors pas.
Enfin bref, moi je ne comprends vraiment pas. Je n'ai jamais utiliser Lotus jusqu'a présent mais je suppose que l'utilisateur qui doit envoyer le mail est mal configurer

Merci quand même

Et si quelqu'un sait ce que signifie "Un masque enregistré ne doit pas contenir de sous-masuqe calculés", qu'il me fasse signe

ps: la réception sur hotmail et gmail ne pose aucun problème, il n'y a que Lotus qui pose problème
 
Re : Excel et Lotus Notes : "Illegal circular use : CoreEmailClasses"

Bonjour,
1 - Par curiosité, donnes moi ton code que je teste sur mon poste avec Lotus Notes 7

2 -
Ci-joint le code que j'utilise et qui fonctionne avec Lotus Notes 7 (fermé)
Ajouter la référence Lotus Domino Objects (domobj.tlb)

N'oublies pas de changer l'adresse du serveur dans cette ligne
Set dbDirectory = oSession.GetDbDirectory("EVREUX01/DEUTSCH")
et le mot de passe dans cette ligne
oSession.Initialize ("password")

Code:
 Sub EnvoiMail()
 ' Ajouter la référence Lotus Domino Objects (domobj.tlb)
    Dim EMailPJ As String
    Dim Email(1) As String
    'Chemin = ActiveWorkbook.path & "\Report SAV Batch"
    ' Responsables
    Email(1) = "[EMAIL="erenaud@deutsch.net"]erenaud@deutsch.net[/EMAIL]"
    ' Boucle pour envoyer les mails
    For Z = 1 To 1 '
        EnvoiRef = prvSendNotesMail("Sujet du mail", "", Email(Z), SaveIt:=False)
    Next Z
End Sub
Function prvSendNotesMail(Subject As String, Attachment As String, Recipient As String, SaveIt As Boolean) As Boolean
    '*********************************************
    'Repris et développé par EvilGost
    'Adapté par Eric RENAUD
    'Subject: Sujet du mail
    'Attachment: Chemin complet du fichier à attacher (ex: "C:\test.txt"), sinon, mettre ""
    'Recipient: Destinataire (ex: "[EMAIL="jeanlouis@wanadoo.fr"]jeanlouis@wanadoo.fr[/EMAIL]")
    'Bodytext: Texte du mail
    'SaveIt: sauvegarde du mail dans les courriers envoyés
    '*************************************************************************************************************
    'Set up the objects required for Automation into lotus notes
    Dim Maildb As NotesDatabase    'The mail database
    Dim UserName As String    'The current users notes name
    Dim MailDoc As Object    'The mail document itself
    Dim AttachME As Object    'The attachment richtextfile object
    Dim oSession As NotesSession
    Dim dbDirectory As NotesDbDirectory
    Dim EmbedObj As Object    'The embedded object (Attachment)
    Dim maDate As String
    maDate = Format(Date, "dd-mm-yy")
    Dim objNotesField As Object
    On Error GoTo ErrHandle
    Set oSession = New NotesSession
    'Démarre une session de notes
    'La ligne suivante ne marche qu'avec les versions 5.x et 6.x , c'est l'injection du mot de passe
    oSession.Initialize ("password")
    'Récupère le nom par défaut de la session
    UserName = oSession.UserName
    'Ouvre la base mail en utilisant le serveur par défaut
    Set dbDirectory = oSession.GetDbDirectory("EVREUX01/DEUTSCH")    'vous pouvez mettre l'adresse du serveur dans ces parentheses
    Set Maildb = dbDirectory.OpenMailDatabase
    'Création du formulaire d'envoi de mail
    Set MailDoc = Maildb.CreateDocument()
    MailDoc.AppendItemValue "Subject", Subject    'remplissage du Sujet
    MailDoc.AppendItemValue "SendTo", Recipient    'si vous passer un tableau de string() en paramètre, vous pouvez mettre plusieurs destinataire (ex: Recipient(2))
    Set objNotesField = MailDoc.CreateRichTextItem("Body")
    With objNotesField
        .AppendText "   Fichier ETAT DES STOCKS TOUS NIVEAUX POUR AIRBUS"
        .AddNewLine 2
        .AppendText "       avec l'ajout de la colonne Composants N-1"
        .AddNewLine 2
        .AppendText "*************************************************************************************************"
        .AddNewLine 2
        .AppendText "Le fichier Etat des stocks tous niveaux pour AIRBUS du : " & Date & " à " & Time
        .AddNewLine 2
        .AppendText "est enregistré sous le nom AQZZZ_IN_REP_Z_MM_17-01-XX-XX-XX.xls"
        .AddNewLine 2
        .AppendText "est disponible dans le répertoire V:\TRANSFER\FEDERICO\Z_MM_17-01\....."
        .AddNewLine 2
        .AppendText "--------------------------------------------------------------------------------------------------------------------------"
        .AddNewLine 2
        .AppendText "Cet e-mail a été généré par un processus automatique."
        '.APPENDTEXT "Please follow established contact " & _
         "procedures should you have any questions."
        .AddNewLine 2
        .AppendText "Cordialement"
        .AddNewLine 1
        .AppendText "Eric RENAUD"
        .AddNewLine 1
        .AddNewLine 1
    End With
    'Permet d'attacher un document au mail
    If Attachment <> "" Then
        Set AttachME = MailDoc.CreateRichTextItem("Attachment")
        Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment, "Attachment")
    End If
    'Envoi le document
    If SaveIt = True Then
        MailDoc.SaveMessageOnSend = SaveIt    'si à True, Lotus sauvegarde le mail envoyé
    End If
    Call MailDoc.Send(False)    'j'obtiens une erreur lorsque je mets true au lieu de false, si quelqu'un sait pourquoi
    prvSendNotesMail = True
    GoTo ExitHandle
ErrHandle:
    MsgBox Err.Description
    prvSendNotesMail = False
ExitHandle:
    'Vidage mémoire
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set oSession = Nothing
    Set dbDirectory = Nothing
    Set EmbedObj = Nothing
End Function
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
3 K
Retour