Bonjour à tous,
J'aimerais importer les mails contenus dans un répertoire Outlook ("DFDH")
dans une table ("Temp_outlook").
J'ai bien essayé de simplement lier le répertoire mais ça me pose 2
problèmes:
1 avec un expéditeur du type : Toto [toto@msn.com] seul Toto apparaît
dans ma table liée, le mail manque
2 j'aurais préféré pouvoir déplacer mail traité dans un autre répertoire
outlook ("DFDH_traité")
En cherchant sur http://access.seneque.free.fr/ j'ai trouvé une exemple pour
la création d'un répertoire qui fonctionne à merveille.
En le modifiant un peut, j'ai réussit à compter le nombre de messages
présent dant le répertoire (11)
Mais après je sèche.... comment récupérer ces éléments et surtout leur
contenu puis les déplacer ?
Merci par avance de votre aide.
Function fait()
Dim OL_App As New Outlook.Application
Dim OL_Space As Outlook.NameSpace
Dim OL_Folder As Outlook.MAPIFolder
Dim OL_Inbox As Outlook.MAPIFolder
Dim dfdh As Outlook.MAPIFolder
Set OL_Space = OL_App.GetNamespace("MAPI")
Set OL_Inbox = OL_Space.GetDefaultFolder(olFolderInbox)
Set dfdh = OL_Inbox.Folders.Item(23)
MsgBox dfdh.Items.Count
Set OL_Inbox = Nothing
Set OL_Folder = Nothing
Set OL_Space = Nothing
Set OL_App = Nothing
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anor
Bonjour Stéphan
| Bonjour à tous, | J'aimerais importer les mails contenus dans un répertoire Outlook | ("DFDH") dans une table ("Temp_outlook").
ça tombe bien j'ai commencé à travailler sur le sujet, mais je n'ai pas terminé le travail de recherches.......
| J'ai bien essayé de simplement lier le répertoire mais ça me pose 2 | problèmes: | 1 avec un expéditeur du type : Toto [] seul Toto | apparaît dans ma table liée, le mail manque
là je peux te donner une solution alternative d'importation
| 2 j'aurais préféré pouvoir déplacer mail traité dans un autre | répertoire outlook ("DFDH_traité")
mais pour l'instant je n'en suis pas là ....
Si ça peut t'aider, voici l'état du travail en cours. Il y a encore des propriétés intéressantes à importer qui n'y figurent pas, mais pas encore explorées.
Alors une table nommé tblMails avec les champs et type suivants :
AlternateRecipientAllowed Yes/No AutoForwarded Yes/No BCC Text BillingInformation Text Body Memo Categories Text CC Text Companies Text ConversationIndex Text ConversationTopic Text CreationTime Date/Time DeferredDeliveryTime Date/Time DeleteAfterSubmit Yes/No EntryID Text ExpiryTime Date/Time FlagDueBy Date/Time FlagRequest Text HTMLBody Memo InternetCodepage Number IsConflict Yes/No LastModificationTime Date/Time MessageClass Text Mileage Text NoAging Yes/No OriginatorDeliveryReportRequested Yes/No OutlookInternalVersion Number OutlookVersion Text ReadReceiptRequested Yes/No ReceivedByEntryID Text ReceivedByName Text ReceivedOnBehalfOfEntryID Text ReceivedOnBehalfOfName Text ReceivedTime Date/Time RecipientReassignmentProhibited Yes/No ReminderOverrideDefault Yes/No ReminderPlaySound Yes/No ReminderSet Yes/No ReminderSoundFile Text ReminderTime Date/Time ReplyRecipientNames Text Saved Yes/No SenderName Text Sent Yes/No SentOn Date/Time SentOnBehalfOfName Text Size Number Subject Text Submitted Yes/No To Text UnRead Yes/No VotingOptions Text VotingResponse Text Attachments Text
puis le code pour importer les données :
Sub btnImportMail_Click() Dim strAttachment As String Dim rsMail As dao.Recordset
Dim OlApp As New Outlook.Application Dim OlMapi As Outlook.NameSpace Dim OlFolder As Outlook.MAPIFolder Dim OlItems As Outlook.MailItem Dim OlAttach As Outlook.Attachment
Set OlApp = CreateObject("Outlook.Application") Set OlMapi = OlApp.GetNamespace("MAPI") Set OlFolder = OlMapi.PickFolder
Set rsMail = CurrentDb.OpenRecordset("tblMails")
For Each OlItems In OlFolder.Items
For Each OlAttach In OlItems.Attachments strAttachment = strAttachment & OlAttach.DisplayName & vbCrLf Next OlAttach
| Bonjour à tous,
| J'aimerais importer les mails contenus dans un répertoire Outlook
| ("DFDH") dans une table ("Temp_outlook").
ça tombe bien j'ai commencé à travailler sur le sujet, mais je n'ai pas terminé
le travail de recherches.......
| J'ai bien essayé de simplement lier le répertoire mais ça me pose 2
| problèmes:
| 1 avec un expéditeur du type : Toto [toto@msn.com] seul Toto
| apparaît dans ma table liée, le mail manque
là je peux te donner une solution alternative d'importation
| 2 j'aurais préféré pouvoir déplacer mail traité dans un autre
| répertoire outlook ("DFDH_traité")
mais pour l'instant je n'en suis pas là ....
Si ça peut t'aider, voici l'état du travail en cours.
Il y a encore des propriétés intéressantes à importer qui n'y figurent pas, mais pas encore
explorées.
Alors une table nommé tblMails avec les champs et type suivants :
AlternateRecipientAllowed Yes/No
AutoForwarded Yes/No
BCC Text
BillingInformation Text
Body Memo
Categories Text
CC Text
Companies Text
ConversationIndex Text
ConversationTopic Text
CreationTime Date/Time
DeferredDeliveryTime Date/Time
DeleteAfterSubmit Yes/No
EntryID Text
ExpiryTime Date/Time
FlagDueBy Date/Time
FlagRequest Text
HTMLBody Memo
InternetCodepage Number
IsConflict Yes/No
LastModificationTime Date/Time
MessageClass Text
Mileage Text
NoAging Yes/No
OriginatorDeliveryReportRequested Yes/No
OutlookInternalVersion Number
OutlookVersion Text
ReadReceiptRequested Yes/No
ReceivedByEntryID Text
ReceivedByName Text
ReceivedOnBehalfOfEntryID Text
ReceivedOnBehalfOfName Text
ReceivedTime Date/Time
RecipientReassignmentProhibited Yes/No
ReminderOverrideDefault Yes/No
ReminderPlaySound Yes/No
ReminderSet Yes/No
ReminderSoundFile Text
ReminderTime Date/Time
ReplyRecipientNames Text
Saved Yes/No
SenderName Text
Sent Yes/No
SentOn Date/Time
SentOnBehalfOfName Text
Size Number
Subject Text
Submitted Yes/No
To Text
UnRead Yes/No
VotingOptions Text
VotingResponse Text
Attachments Text
puis le code pour importer les données :
Sub btnImportMail_Click()
Dim strAttachment As String
Dim rsMail As dao.Recordset
Dim OlApp As New Outlook.Application
Dim OlMapi As Outlook.NameSpace
Dim OlFolder As Outlook.MAPIFolder
Dim OlItems As Outlook.MailItem
Dim OlAttach As Outlook.Attachment
Set OlApp = CreateObject("Outlook.Application")
Set OlMapi = OlApp.GetNamespace("MAPI")
Set OlFolder = OlMapi.PickFolder
Set rsMail = CurrentDb.OpenRecordset("tblMails")
For Each OlItems In OlFolder.Items
For Each OlAttach In OlItems.Attachments
strAttachment = strAttachment & OlAttach.DisplayName & vbCrLf
Next OlAttach
| Bonjour à tous, | J'aimerais importer les mails contenus dans un répertoire Outlook | ("DFDH") dans une table ("Temp_outlook").
ça tombe bien j'ai commencé à travailler sur le sujet, mais je n'ai pas terminé le travail de recherches.......
| J'ai bien essayé de simplement lier le répertoire mais ça me pose 2 | problèmes: | 1 avec un expéditeur du type : Toto [] seul Toto | apparaît dans ma table liée, le mail manque
là je peux te donner une solution alternative d'importation
| 2 j'aurais préféré pouvoir déplacer mail traité dans un autre | répertoire outlook ("DFDH_traité")
mais pour l'instant je n'en suis pas là ....
Si ça peut t'aider, voici l'état du travail en cours. Il y a encore des propriétés intéressantes à importer qui n'y figurent pas, mais pas encore explorées.
Alors une table nommé tblMails avec les champs et type suivants :
AlternateRecipientAllowed Yes/No AutoForwarded Yes/No BCC Text BillingInformation Text Body Memo Categories Text CC Text Companies Text ConversationIndex Text ConversationTopic Text CreationTime Date/Time DeferredDeliveryTime Date/Time DeleteAfterSubmit Yes/No EntryID Text ExpiryTime Date/Time FlagDueBy Date/Time FlagRequest Text HTMLBody Memo InternetCodepage Number IsConflict Yes/No LastModificationTime Date/Time MessageClass Text Mileage Text NoAging Yes/No OriginatorDeliveryReportRequested Yes/No OutlookInternalVersion Number OutlookVersion Text ReadReceiptRequested Yes/No ReceivedByEntryID Text ReceivedByName Text ReceivedOnBehalfOfEntryID Text ReceivedOnBehalfOfName Text ReceivedTime Date/Time RecipientReassignmentProhibited Yes/No ReminderOverrideDefault Yes/No ReminderPlaySound Yes/No ReminderSet Yes/No ReminderSoundFile Text ReminderTime Date/Time ReplyRecipientNames Text Saved Yes/No SenderName Text Sent Yes/No SentOn Date/Time SentOnBehalfOfName Text Size Number Subject Text Submitted Yes/No To Text UnRead Yes/No VotingOptions Text VotingResponse Text Attachments Text
puis le code pour importer les données :
Sub btnImportMail_Click() Dim strAttachment As String Dim rsMail As dao.Recordset
Dim OlApp As New Outlook.Application Dim OlMapi As Outlook.NameSpace Dim OlFolder As Outlook.MAPIFolder Dim OlItems As Outlook.MailItem Dim OlAttach As Outlook.Attachment
Set OlApp = CreateObject("Outlook.Application") Set OlMapi = OlApp.GetNamespace("MAPI") Set OlFolder = OlMapi.PickFolder
Set rsMail = CurrentDb.OpenRecordset("tblMails")
For Each OlItems In OlFolder.Items
For Each OlAttach In OlItems.Attachments strAttachment = strAttachment & OlAttach.DisplayName & vbCrLf Next OlAttach
Merci beaucoup. J'ai crée la table et fait une importation, c'est super. j'ai juste du passer .Fields("InternetCodepage") = OlItems.InternetCodepage .Fields("IsConflict") = OlItems.IsConflict Pour lesquels j'avais une erreur. Et tous les champs texte de la table, passer "chaine vide autorisée" à oui.
J'ai remodifié mon 1er code et ajouté un espion pendant l'exécution pour voir les valeurs des expressions.
Merci beaucoup.
J'ai crée la table et fait une importation, c'est super.
j'ai juste du passer
.Fields("InternetCodepage") = OlItems.InternetCodepage
.Fields("IsConflict") = OlItems.IsConflict
Pour lesquels j'avais une erreur.
Et tous les champs texte de la table, passer "chaine vide autorisée" à oui.
J'ai remodifié mon 1er code et ajouté un espion pendant l'exécution pour
voir les valeurs des expressions.
Merci beaucoup. J'ai crée la table et fait une importation, c'est super. j'ai juste du passer .Fields("InternetCodepage") = OlItems.InternetCodepage .Fields("IsConflict") = OlItems.IsConflict Pour lesquels j'avais une erreur. Et tous les champs texte de la table, passer "chaine vide autorisée" à oui.
J'ai remodifié mon 1er code et ajouté un espion pendant l'exécution pour voir les valeurs des expressions.
Anor
Bonjour
Gantzer Stéphan : | Merci beaucoup. | J'ai crée la table et fait une importation, c'est super. | j'ai juste du passer | .Fields("InternetCodepage") = OlItems.InternetCodepage | .Fields("IsConflict") = OlItems.IsConflict | Pour lesquels j'avais une erreur. | Et tous les champs texte de la table, passer "chaine vide autorisée" | à oui. | | J'ai remodifié mon 1er code et ajouté un espion pendant l'exécution | pour voir les valeurs des expressions.
oui je n'ai pas encore trop regardé dans le détail ce que ça donnait.
les 2 erreurs proviennent probablement du fait que j'ai extrait les champs en regardant les propriétés directes de l'objet pour outlook 2002.
De toute façon, il y en a plein qui ne te serviront probablement jamais, et il est facile de les supprimer et de la table, et du code.
A l'image des attachments, il y a peut-être quelques propriétés indirectes intéressantes à ramener mais je n'ai pas encore regardé lesquelles.
reste plus qu'à déplacer ou supprimer les mails importés en fin de code ;-)
Gantzer Stéphan <sgantzer@wanadoo.fr> :
| Merci beaucoup.
| J'ai crée la table et fait une importation, c'est super.
| j'ai juste du passer
| .Fields("InternetCodepage") = OlItems.InternetCodepage
| .Fields("IsConflict") = OlItems.IsConflict
| Pour lesquels j'avais une erreur.
| Et tous les champs texte de la table, passer "chaine vide autorisée"
| à oui.
|
| J'ai remodifié mon 1er code et ajouté un espion pendant l'exécution
| pour voir les valeurs des expressions.
oui je n'ai pas encore trop regardé dans le détail ce que ça donnait.
les 2 erreurs proviennent probablement du fait que j'ai extrait les champs
en regardant les propriétés directes de l'objet pour outlook 2002.
De toute façon, il y en a plein qui ne te serviront probablement jamais,
et il est facile de les supprimer et de la table, et du code.
A l'image des attachments, il y a peut-être quelques propriétés indirectes
intéressantes à ramener mais je n'ai pas encore regardé lesquelles.
reste plus qu'à déplacer ou supprimer les mails importés en fin de code ;-)
Gantzer Stéphan : | Merci beaucoup. | J'ai crée la table et fait une importation, c'est super. | j'ai juste du passer | .Fields("InternetCodepage") = OlItems.InternetCodepage | .Fields("IsConflict") = OlItems.IsConflict | Pour lesquels j'avais une erreur. | Et tous les champs texte de la table, passer "chaine vide autorisée" | à oui. | | J'ai remodifié mon 1er code et ajouté un espion pendant l'exécution | pour voir les valeurs des expressions.
oui je n'ai pas encore trop regardé dans le détail ce que ça donnait.
les 2 erreurs proviennent probablement du fait que j'ai extrait les champs en regardant les propriétés directes de l'objet pour outlook 2002.
De toute façon, il y en a plein qui ne te serviront probablement jamais, et il est facile de les supprimer et de la table, et du code.
A l'image des attachments, il y a peut-être quelques propriétés indirectes intéressantes à ramener mais je n'ai pas encore regardé lesquelles.
reste plus qu'à déplacer ou supprimer les mails importés en fin de code ;-)
J'ai mis à jour la page suivante pour quelques manipulations Access/Outlook :
http://www.anor.fr.st/outlook.htm
c'est plus clair que le brouillon que j'avais posté et qui reprenait toutes les propriétés de l'objet Item donc y compris celles inutilisées dans les messages outlook.
Tiens, l'adresse que tu donnes me dit quelque chose ... ah oui, outlook redemption pour programmer outlook en contournant certaines sécurités.
allez, je vais aller voir ce que fait ce outlookspy ;-))
Gantzer Stéphan a élucidé : | Bonjour à tous, | Je ne comprend pas la subtille différence entre les deux codes, | l'essentiel est que ça marche. | Avec ça je vais pouvoir me débrouiller. | J'ai également utilisé Outlookspy ( http://www.dimastr.com/outspy ) | pour mieux "voir" les résultat des propriétés et les méthodes d'accès | à outlook Dommage qu'il soit si cher pour quelques utlisations ( 50$). | Encore merci de votre aide. | Gantzer Stéphan | | | |
Bonjour Stéphan
J'ai mis à jour la page suivante pour quelques manipulations Access/Outlook :
http://www.anor.fr.st/outlook.htm
c'est plus clair que le brouillon que j'avais posté et qui reprenait
toutes les propriétés de l'objet Item donc y compris celles inutilisées
dans les messages outlook.
Tiens, l'adresse que tu donnes me dit quelque chose ...
ah oui, outlook redemption pour programmer outlook
en contournant certaines sécurités.
allez, je vais aller voir ce que fait ce outlookspy ;-))
Gantzer Stéphan <sgantzer@wanadoo.fr> a élucidé :
| Bonjour à tous,
| Je ne comprend pas la subtille différence entre les deux codes,
| l'essentiel est que ça marche.
| Avec ça je vais pouvoir me débrouiller.
| J'ai également utilisé Outlookspy ( http://www.dimastr.com/outspy )
| pour mieux "voir" les résultat des propriétés et les méthodes d'accès
| à outlook Dommage qu'il soit si cher pour quelques utlisations ( 50$).
| Encore merci de votre aide.
| Gantzer Stéphan
|
|
|
|
J'ai mis à jour la page suivante pour quelques manipulations Access/Outlook :
http://www.anor.fr.st/outlook.htm
c'est plus clair que le brouillon que j'avais posté et qui reprenait toutes les propriétés de l'objet Item donc y compris celles inutilisées dans les messages outlook.
Tiens, l'adresse que tu donnes me dit quelque chose ... ah oui, outlook redemption pour programmer outlook en contournant certaines sécurités.
allez, je vais aller voir ce que fait ce outlookspy ;-))
Gantzer Stéphan a élucidé : | Bonjour à tous, | Je ne comprend pas la subtille différence entre les deux codes, | l'essentiel est que ça marche. | Avec ça je vais pouvoir me débrouiller. | J'ai également utilisé Outlookspy ( http://www.dimastr.com/outspy ) | pour mieux "voir" les résultat des propriétés et les méthodes d'accès | à outlook Dommage qu'il soit si cher pour quelques utlisations ( 50$). | Encore merci de votre aide. | Gantzer Stéphan | | | |