Ho poca conoscenza di Lotus Script o Notes/Domino ma ho una procedura, copiata da qualche parte molto tempo fa, che mi consente di inviare e-mail tramite Notes da VBA. Normalmente lo uso solo per le notifiche interne in cui la formattazione non ha realmente avuto importanza.Invio di testo RTF in formato Lotus Notes da Excel VBA
Ora desidero utilizzarlo per inviare e-mail esterne a un client, mentre i tipi aziendali preferiscono che l'e-mail sia conforme alla nostra guida di stile (in pratica un carattere tipografico sans-serif).
Stavo per dire loro che il codice funziona solo con testo normale, ma poi ho notato che la routine fa riferimento a qualche tipo di oggetto CREATERICHTEXTITEM. Questo significa che potrei applicare una sorta di formattazione alla stringa di testo del corpo dopo il che è stata passata alla routine di posta? Oltre a sostenere i nostri preziosi valori di marca, questo mi sarebbe abbastanza utile per evidenziare alcuni passaggi nell'e-mail.
Ho fatto uno scavo sulla rete per vedere se questo codice può essere adattato, ma non conosco il modello a oggetti di Notes e il fatto che le risorse di Notes online sembrano rispecchiare l'ottusità dell'applicazione, significa che non ho andare molto lontano
Il codice:
Sub sendEmail(EmailSubject As String, EMailSendTo As String, EMailBody As String, MailServer as String) Dim objNotesSession As Object Dim objNotesMailFile As Object Dim objNotesDocument As Object Dim objNotesField As Object Dim sendmail As Boolean 'added for integration into reporting tool Dim dbString As String dbString = "mail\" & Application.UserName & ".nsf" On Error GoTo SendMailError 'Establish Connection to Notes Set objNotesSession = CreateObject("Notes.NotesSession") On Error Resume Next 'Establish Connection to Mail File Set objNotesMailFile = objNotesSession.GETDATABASE(MailServer, dbString) 'Open Mail objNotesMailFile.OPENMAIL On Error GoTo 0 'Create New Memo Set objNotesDocument = objNotesMailFile.createdocument Dim oWorkSpace As Object, oUIdoc As Object Set oWorkSpace = CreateObject("Notes.NotesUIWorkspace") Set oUIdoc = oWorkSpace.CurrentDocument 'Create 'Subject Field' Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject", EmailSubject) 'Create 'Send To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo", EMailSendTo) 'Create 'Copy To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo) 'Create 'Blind Copy To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo) 'Create 'Body' of memo Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body") With objNotesField .APPENDTEXT emailBody .ADDNEWLINE 1 End With 'Send the e-mail Call objNotesDocument.Save(True, False, False) objNotesDocument.SaveMessageOnSend = True 'objNotesDocument.Save objNotesDocument.Send (0) 'Release storage Set objNotesSession = Nothing Set objNotesMailFile = Nothing Set objNotesDocument = Nothing Set objNotesField = Nothing 'Set return code sendmail = True Exit Sub SendMailError: Dim Msg Msg = "Error # " & Str(Err.Number) & " was generated by " _ & Err.Source & Chr(13) & Err.Description MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext sendmail = False End Sub
Grazie, sembra facile come avrei immaginato! Ho provato a integrare il tuo codice nel mio progetto, ma anche dopo aver aggiunto riferimenti a tutte le librerie di Lotus Notes sto ancora incontrando dei problemi.Principalmente, non penso che NotesStream sia disponibile tramite COM, il che mette il kibosh su tutta la faccenda. – Lunatik
Ho controllato il file della guida: non è stato detto che lo streaming non è supportato in COM, quindi dovrebbe funzionare. Potresti voler imbrogliare: Archivia il codice HTML semplice nel campo e quindi chiama un agente LotusScript su di esso che esegue la conversione per te. – stwissel