OVH Cloud OVH Cloud

Ouverture d'un mail depuis Access

8 réponses
Avatar
J-Pierre
Bonjour tout le monde,

Le code pour créer un mail avec une pièce jointe, on a ça depuis plusieurs années. Mais maintenant, je voudrais:

si possible, mettre le mail dans le dossier brouillon pour qu'il ne parte pas automatiquement quand l'utilisateur ouvre sa
messagerie (mais ça, ce serait vraiment le luxe)
Dès qu'il est créé, ouvrir le mail dans une fenêtre Outlook Express pour que l'utilisateur puisse le modifier avant envoi.

Je dis bien avec Outlook express......

Il y a des tas de logiciels qui font ça, ça m'énerve d'être plus bête que les autres.....

Si vous avez une idée brillante :-))))))) en attendant, je continue de chercher :-((((((

J-Pierre

8 réponses

Avatar
3stone
Salut,

"J-Pierre"
| Le code pour créer un mail avec une pièce jointe, on a ça depuis plusieurs années. Mais
maintenant, je voudrais:
|
| si possible, mettre le mail dans le dossier brouillon pour qu'il ne parte pas automatiquement
quand l'utilisateur ouvre sa
| messagerie (mais ça, ce serait vraiment le luxe)
| Dès qu'il est créé, ouvrir le mail dans une fenêtre Outlook Express pour que l'utilisateur puisse
le modifier avant envoi.
|
| Je dis bien avec Outlook express......


Et ceci ne te plaît pas ?
http://www.3stone.be/access/articles.php?lng=fr&pg

Ok d'accord... il envoi pas dans le dossier brouillon, mais il l'ouvre après création...
si on renseigne le dernier paramètre (False)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
re

"3stone"
Et ceci ne te plaît pas ?
http://www.3stone.be/access/articles.php?lng=fr&pg



transmutation bis ;-)

a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------

Avatar
3stone
<Anor> a écrit
|
| transmutation bis ;-)

waaarrfff ;-)))

tu crois qu'il va comprendre ?




I have a dream...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
J-Pierre
Non, j'ai toujours pas compris

Va falloir que j'étudie ça de près, mais d'abord, je dois finir d'intégrer le contrôle ActiveX RTF dans l'appli....

merci pour votre aide, ça fait 2 ans je crois que je n'avais plus ouvert une base Access, et j'ai un peu peur d'avoir perdu la
main :-(

JPierre

"3stone" a écrit dans le message de news: eNDl1%
<Anor> a écrit
|
| transmutation bis ;-)

waaarrfff ;-)))

tu crois qu'il va comprendre ?




I have a dream...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
3stone
Salut JPierre,


"J-Pierre"
| Non, j'ai toujours pas compris
|
| Va falloir que j'étudie ça de près, mais d'abord, je dois finir d'intégrer le contrôle ActiveX RTF
dans l'appli....
|
| merci pour votre aide, ça fait 2 ans je crois que je n'avais plus ouvert une base Access, et j'ai
un peu peur d'avoir perdu la
| main :-(


Arnaud et moi ne faisions pas allusion à tes connaissances d'Access qui sont
d'ailleurs exellentes, mais plutôt au terme que j'avais employé : "transmutation"...

;-))


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
J-Pierre
Et ceci ne te plaît pas ?
http://www.3stone.be/access/articles.php?lng=fr&pg

Ok d'accord... il envoi pas dans le dossier brouillon, mais il l'ouvre après création...
si on renseigne le dernier paramètre (False)

A+
Pierre (3stone) Access MVP



Mais mon bon Monsieur, tout ceci est parfait :-))))))
Et pour la transmutation, j'avais bien compris, tu as donc transformé du plomb vulgaire en or précieux ?

Si je peux me permettre, à l'époque, il y avait du code supplémentaire que tu n'as pas repris: La gestion de tous les codes
erreur MAPI avec message approprié (en anglais !!!!!!!) et l'envoi du mail avec pièce jointe (au format RTF semble-t-il) par
Lotus Notes semble-t-il (fonction que je n'ai jamais pu tester !!!!!!!)

Je te recopie tout ça pour le cas où tu voudrais l'intégrer.

Et merci pour ton aide
J-Pierre

____________________________________
Global Const SUCCESS_SUCCESS = 0
Global Const MAPI_USER_ABORT = 1
Global Const MAPI_E_USER_ABORT = MAPI_USER_ABORT
Global Const MAPI_E_FAILURE = 2
Global Const MAPI_E_LOGIN_FAILURE = 3
Global Const MAPI_E_LOGON_FAILURE = MAPI_E_LOGIN_FAILURE
Global Const MAPI_E_DISK_FULL = 4
Global Const MAPI_E_INSUFFICIENT_MEMORY = 5
Global Const MAPI_E_BLK_TOO_SMALL = 6
Global Const MAPI_E_TOO_MANY_SESSIONS = 8
Global Const MAPI_E_TOO_MANY_FILES = 9
Global Const MAPI_E_TOO_MANY_RECIPIENTS = 10
Global Const MAPI_E_ATTACHMENT_NOT_FOUND = 11
Global Const MAPI_E_ATTACHMENT_OPEN_FAILURE = 12
Global Const MAPI_E_ATTACHMENT_WRITE_FAILURE = 13
Global Const MAPI_E_UNKNOWN_RECIPIENT = 14
Global Const MAPI_E_BAD_RECIPTYPE = 15
Global Const MAPI_E_NO_MESSAGES = 16
Global Const MAPI_E_INVALID_MESSAGE = 17
Global Const MAPI_E_TEXT_TOO_LARGE = 18
Global Const MAPI_E_INVALID_SESSION = 19
Global Const MAPI_E_TYPE_NOT_SUPPORTED = 20
Global Const MAPI_E_AMBIGUOUS_RECIPIENT = 21
Global Const MAPI_E_AMBIG_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT
Global Const MAPI_E_MESSAGE_IN_USE = 22
Global Const MAPI_E_NETWORK_FAILURE = 23
Global Const MAPI_E_INVALID_EDITFIELDS = 24
Global Const MAPI_E_INVALID_RECIPS = 25
Global Const MAPI_E_NOT_SUPPORTED = 26
Global Const MAPI_E_INVALID_PARAMETER = 998
Global Const MAPI_E_NO_LIBRARY = 999

Global Const USER_NO_DEFAULT_CLIENT = 50
Global Const USER_UNKNOWN_CLIENT = 51

_____________________________________
Public Function ErrMsgSendMail(E) As String

Select Case E
Case SUCCESS_SUCCESS
ErrMsgSendMail = "SUCCESS SUCCESS"
Case MAPI_USER_ABORT
ErrMsgSendMail = "MAPI USER ABORT"
Case MAPI_E_USER_ABORT
ErrMsgSendMail = "MAPI E USER ABORT"
Case MAPI_E_FAILURE
ErrMsgSendMail = "MAPI E FAILURE"
Case MAPI_E_LOGON_FAILURE
ErrMsgSendMail = "MAPI E LOGON FAILURE"
Case MAPI_E_LOGIN_FAILURE
ErrMsgSendMail = "MAPI E LOGIN FAILURE"
Case MAPI_E_DISK_FULL
ErrMsgSendMail = "MAPI E DISK FULL"
Case MAPI_E_INSUFFICIENT_MEMORY
ErrMsgSendMail = "MAPI E INSUFFICIENT MEMORY"
Case MAPI_E_TOO_MANY_SESSIONS
ErrMsgSendMail = "MAPI E TOO MANY SESSIONS"
Case MAPI_E_TOO_MANY_FILES
ErrMsgSendMail = "MAPI E TOO MANY FILES"
Case MAPI_E_TOO_MANY_RECIPIENTS
ErrMsgSendMail = "MAPI E TOO MANY RECIPIENTS"
Case MAPI_E_ATTACHMENT_NOT_FOUND
ErrMsgSendMail = "MAPI E ATTACHMENT NOT FOUND"
Case MAPI_E_ATTACHMENT_OPEN_FAILURE
ErrMsgSendMail = "MAPI E ATTACHMENT OPEN FAILURE"
Case MAPI_E_ATTACHMENT_WRITE_FAILURE
ErrMsgSendMail = "MAPI E ATTACHMENT WRITE FAILURE"
Case MAPI_E_UNKNOWN_RECIPIENT
ErrMsgSendMail = "MAPI E UNKNOWN RECIPIENT"
Case MAPI_E_BAD_RECIPTYPE
ErrMsgSendMail = "MAPI E BAD RECIPTYPE"
Case MAPI_E_NO_MESSAGES
ErrMsgSendMail = "MAPI E NO MESSAGES"
Case MAPI_E_INVALID_MESSAGE
ErrMsgSendMail = "MAPI E INVALID MESSAGE"
Case MAPI_E_TEXT_TOO_LARGE
ErrMsgSendMail = "MAPI E TEXT TOO LARGE"
Case MAPI_E_INVALID_SESSION
ErrMsgSendMail = "MAPI E INVALID SESSION"
Case MAPI_E_TYPE_NOT_SUPPORTED
ErrMsgSendMail = "MAPI E TYPE NOT SUPPORTED"
Case MAPI_E_AMBIGUOUS_RECIPIENT
ErrMsgSendMail = "MAPI E AMBIGUOUS RECIPIENT"
Case MAPI_E_AMBIG_RECIP
ErrMsgSendMail = "MAPI E AMBIG RECIP"
Case MAPI_E_MESSAGE_IN_USE
ErrMsgSendMail = "MAPI E MESSAGE IN USE"
Case MAPI_E_NETWORK_FAILURE
ErrMsgSendMail = "MAPI E NETWORK FAILURE"
Case MAPI_E_INVALID_EDITFIELDS
ErrMsgSendMail = "MAPI E INVALID EDITFIELDS"
Case MAPI_E_INVALID_RECIPS
ErrMsgSendMail = "MAPI E INVALID RECIPS"
Case MAPI_E_NOT_SUPPORTED
ErrMsgSendMail = "MAPI E NOT SUPPORTED"
Case MAPI_E_NO_LIBRARY
ErrMsgSendMail = "MAPI E NO LIBRARY"
Case MAPI_E_INVALID_PARAMETER
ErrMsgSendMail = "MAPI E INVALID PARAMETER"
Case USER_NO_DEFAULT_CLIENT
ErrMsgSendMail = "NO DEFAULT CLIENT FOUND"
Case USER_UNKNOWN_CLIENT
ErrMsgSendMail = "UNKNOWN CLIENT FOUND"
End Select

End Function
_______________________________

Function SendMail (......
-
-
-

' Find the default client for mails
messClient = fReturnRegKeyValue(HKEY_LOCAL_MACHINE, "SoftwareClientsMail", "")
'MsgBox "clé mail=" & messClient


If UCase(messClient) = "LOTUS NOTES" Then
Call SendNotesMail(sSubject, sAttach, sTo, sMessage, True)
Exit Function
End If

-
-
-
end function


Public Sub SendNotesMail _
(Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean)
'Set up the objects required for Automation into lotus notes
Dim Maildb As Object 'The mail database
Dim UserName As String 'The current users notes name
Dim MailDbName As String 'THe current users notes mail database name
Dim MailDoc As Object 'The mail document itself
Dim AttachME As Object 'The attachment richtextfile object
Dim Session As Object 'The notes session
Dim EmbedObj As Object 'The embedded object (Attachment)

Set Session = CreateObject("Notes.NotesSession")
'Get the sessions username and then calculate the mail file name
'You may or may not need this as for MailDBname with some systems you
'can pass an empty string
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) & InStr(1, UserName, " "))) & ".nsf"
'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then
'Already open for mail
Else
Maildb.OPENMAIL
End If
'Set up the new mail document
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = Recipient
MailDoc.Subject = Subject
MailDoc.Body = BodyText
MailDoc.SAVEMESSAGEONSEND = SaveIt
'Set up the embedded object and attachment and attach it
If Attachment <> "" Then
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
MailDoc.CREATERICHTEXTITEM ("Attachment")
End If
'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
MailDoc.Send 0, Recipient
'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
End Sub
_____________________________________________

Avatar
Salut J-Pierre,

"J-Pierre"

Mais mon bon Monsieur, tout ceci est parfait :-))))))
Et pour la transmutation, j'avais bien compris, tu as donc transformé du plomb vulgaire en or précieux ?


perdu :-)

Si je peux me permettre, à l'époque, il y avait du code supplémentaire que tu n'as pas repris


Tout a été repris, seuls les bugs ou erreurs ont été corrigés ;-)

--
A+
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------

Avatar
J-Pierre
Pour la transmutation, j'abandonne.......C'est pas sympa de se moquer comme ça d'un petit nouveau sur le forum Access qui est
déjà terrorisé à l'idée de cotoyer tous ces brillants MVP et autres contributeurs réguliers.

Juste une remarque quand on envoie un mail avec sImmediateSend à False pour ouvrir la fenêtre OE.

Il semble qu'Access continue à exécuter le code de la procédure sans attendre que OE soit fermé. Ou bien ne l'exécute
pas...Problème qui ne se pose pas si sImmediateSend est à True.

Et plus précisement, après l'envoi de mon mail
WretMess = SendMail(......)
j'ai un
DoCmd.Close acForm, Me.Name
qui ne fonctionne plus.

J'ai contourné le problème en rajoutant un MsgBox avant le DoCmd qui informe l'utilisateur que son mail est bien parti ou pas,
chose qu'il sait déjà puisqu'il vient juste de le faire...... pas terrible, mais bon, si vous n'avez pas mieux.........

Je sais, je suis chiant :-(
Merci
J-Pierre

<Anor> a écrit dans le message de news:
Salut J-Pierre,

"J-Pierre"

Mais mon bon Monsieur, tout ceci est parfait :-))))))
Et pour la transmutation, j'avais bien compris, tu as donc transformé du plomb vulgaire en or précieux ?


perdu :-)

Si je peux me permettre, à l'époque, il y avait du code supplémentaire que tu n'as pas repris


Tout a été repris, seuls les bugs ou erreurs ont été corrigés ;-)

--
A+
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------