Question Récupération mail depuis powershell

Plus d'informations
il y a 8 ans 6 mois #24240 par Théo Gindre
Bonjour,

Ayant fait pas mal de recherche et ne trouvant pas mon bonheur j'en viens a vous demande votre aide,

Je suis actuellement sur un projet qui consiste a récupérer les mails envoyés automatiquement par les systèmes d'alertes afin de les stocker dans une base de données,

J'ai réussi a faire un script qui récupère les mails depuis l'application Outlook en local cependant je n'arrive pas a récupérer les mails sur le serveur directement,

Étant donné que les mails arrivent sur une dizaine d'adresse différentes, j'aurais besoin d'un script qui se connecte directement sur le serveurs de messagerie puis récupère les informations de chaque mail pour les transférer vers la base de données qui les traitera pas la suite,

Ci dessous mon premier script:

[code:1]$olFolderInbox = 6
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace(\"MAPI\"«»);
$inbox = $ns.GetDefaultFolder($olFolderInbox)
$inbox.items | foreach {
$Expediteur = $_.SenderName
$Expediteur
$Recepteur = $_.To
$Recepteur
$DateReception = $_.ReceivedTime
$DateReception
$Sujet = $_.Subject
$Sujet
$Contenu = $_.Body
$Contenu
}
[/code:1]

Merci d'avance de votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 6 mois #24241 par crogiez
bonjour

j'ai fait des stat sur l'arrivée de messages
dans une boite mails

[code:1]#debut de ps1
Add-type -assembly \"Microsoft.Office.Interop.Outlook\" | out-null

$olFolders = \"Microsoft.Office.Interop.Outlook.olDefaultFolders\" -as [type]
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace(\"MAPI\"«»)


#ma mailbox
$folder = $namespace.getDefaultFolder($olFolders::olFolderInBox)
$folder.Items.Count

#cherche autre mailbox
$namespace.Folders
#
$obj_mb=$namespace.Folders.GetFirst()
if($obj_mb.Name -ne \"autre.box@microsoft.fr\"«»){
$obj_mb=$namespace.Folders.GetNext()
}
$mlog=$obj_mb.Name; ecrit_log($mlog)

#dossiers dans mailbox
$tab_dos=$obj_mb.Folders | select folderpath,entryid
$mlog=\"nombre de dossiers=\"+$tab_dos.count;

# la suite cherche les dossiers, sou dossiers
# dans la boite mail

\"lit 1 niveau\"
$tab1=$obj_mb.Folders
$tab1.Count

\"lit 2 niveaux\"
$tab2=$obj_mb.Folders | % { $_.folders }
$tab2.Count

\"lit 3 niveaux\"
$tab3=$obj_mb.Folders | % { $_.folders | % { $_.folders }}
$tab3.Count

\"lit 4 niveaux\"
$tab4=$obj_mb.Folders | % { $_.folders | % { $_.folders | % { $_.folders }}}
$tab4.Count

\"total\"
$tab_doss=$tab1+$tab2+$tab3+$tab4
$tab_doss.count

\"cherche mails\"
$tab_doss | % {
$nom_doss=$_
$nom_doss.FolderPath

if($nom_doss.FolderPath.IndexOf(\"02-Incidents\"«») -ge 0){

$nom_doss.items.count.ToString(\"0000\"«»)
$mlog=\"\"+$nom_doss.FolderPath+\";\"+$nom_doss.items.count.ToString(\"0000\"«»); ecrit_log($mlog)

#filtre mails
#$tab_doss[234].items | % { $_.ReceivedTime.tostring()+\";\"+$_.tasksubject }
$nom_doss.items | % {

\"-\"
$nom_doss.FolderPath
\"recup parametres du mail\"
$rtime=$_.ReceivedTime
$rtime.datetime
$rtime.Hour

#filtre mail de 8h à 9h et de 17h à 18h
if(($rtime.Hour -eq 8) -or ($rtime.Hour -eq 17)){

$sendby=$_.SenderName
\"sendby=\"+$sendby

$sendto=$_.To
\"sendto=\"+$sendto

$sujet=$_.tasksubject
$sujet

$mlog=\"\"
$mlog=$mlog+$nom_doss.FolderPath+\";\"
$mlog=$mlog+$rtime.ToShortDateString()+\";\"+$rtime.ToLongTimeString()+\";\"
$mlog=$mlog+$sendby+\";\"
$mlog=$mlog+$sendto+\";\"
$mlog=$mlog+$sujet+\";\"
ecrit_log($mlog)

}
}

}

}

#rem fin log
$mlog=\&quot;end\&quot;; ecrit_log($mlog)[/code:1]<br><br>Message édité par: Arnaud, à: 12/09/17 22:49

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 6 mois #24249 par Théo Gindre
Bonjour,
Votre code me permet bien de visualiser les autres boites mail cependant je n'arrive pas a récupérer les mails.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.038 secondes
Propulsé par Kunena