[vb] pb envoi de mail avec Lotus Notes

pb envoi de mail avec Lotus Notes [vb] - VB/VBA/VBS - Programmation

Marsh Posté le 10-04-2007 à 15:46:57    

bonjour tout le monde,
 
Je suis en train de faire un prog qui envoi automatiquement un mail via lotus notes.
Mon pb est sur le formatage du msg, en fait quand je veux faire un "retour chariot" lotus me mets une barre verticale en gras à la place.
Voici le code que j'utilise, je dis ca car il n'est pas de moi je l'ai trouvé sur http://www.vbfrance.com/code.aspx?ID=36653 (merci à son auteur)
 

Function prvSendNotesMail(mdp As String, Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean) As Boolean
 
    '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)
     
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 (mdp)
     
    '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("" ) '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))
    MailDoc.AppendItemValue "body", BodyText 'Corps du mail
    Attachment = ""
    '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


 
Ma variable bodytext est une texte box (en multilignes) qui contient mon msg.
Si quelqu'un a une idée pour faire comprendre à lotus notes a quoi correspondent mes retours chariot, je suis preneur.
Merci.

Reply

Marsh Posté le 10-04-2007 à 15:46:57   

Reply

Marsh Posté le 10-04-2007 à 15:59:44    

Essaie de faire un "MailDoc.AppendItemValue "body", textBody" pour chaque ligne de ton textbox. Avec un peu de pot...

Reply

Marsh Posté le 10-04-2007 à 16:03:04    

Edit : Conformément à cet exemple, Lotus semble accepter des retours chariot dans du RTF sans problème.
http://databaseadvisors.com/piperm [...] 41922.html
 
Donc "zou" :  
 

Code :
  1. Set Body = MailDoc.CreateRichTextItem("Body" )
  2.    Body.AppendText strBodyText

Reply

Marsh Posté le 11-04-2007 à 09:24:32    

Merci ca marche nickel. :jap:

Reply

Marsh Posté le 01-10-2009 à 15:34:45    

plutot une question qu'une réponse.
Bonjour, a tous.
tu fais saisir le mot de pass avant (mdp) ??
et faut il que lotus notes soit ouvert ??
merci pour les réponses.

Reply

Marsh Posté le 01-10-2009 à 16:03:02    

Perso, j'ai fait un petit script en vba qui envoi un mail via lotus notes et j'ai pas de pb de retour chariot sauf que j'ai utilisé la constante "vbCrLf".

Code :
  1. 'Pour l'envoi de la notification
  2. Dim oSession As Object
  3. Dim oDB As Object
  4. Dim oDoc As Object
  5. Dim sMsg As String
  6. Dim oRichTextItem As Object
  7. 'ouvre une session mail Lotus Notes et configure le mail à envoyer
  8. Set oSession = CreateObject("Notes.NotesSession" )
  9. Set oDB = oSession.GetDatabase("", "" )
  10. Call oDB.OpenMail
  11. Set oDoc = oDB.CreateDocument
  12. Call oDoc.ReplaceItemValue("SendTo", "titi@test.fr" ) 'regler ici le nom du destinataire
  13. Call oDoc.ReplaceItemValue("Subject", "Mon sujet de mail" )
  14. 'Le corps du mail
  15. Set oRichTextItem = oDoc.CreateRichTextItem("Body" )
  16. sMsg = "Mon corps de message avec des retour chariot..." & vbCrLf & vbCrLf
  17. Call oRichTextItem.AppendText(sMsg)
  18. 'envoi
  19. oDoc.SaveMessageOnSend = True
  20. Call oDoc.Send(False)
  21. Set oSession = Nothing


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed