Le fichier "mail.que" est une base de données "ESE" qui agit comme la file d'attente de transport sur votre serveur Exchange 2010 ayant le rôle transport Hub ou Edge, en stockant temporairement les messages en attente de traitement.

Il existe certain cas où vous devez récupérer les mails contenus dans cette base. Dans cet article, nous verrons 2 scenarios:

  • Restaurer un ancien fichier Mail.que sur le serveur d'origine.
  • Restaurer un ancien fichier Mail.que puis récupérer les emails sur un autre serveur.

 

Scenario 1 : Restaurer un ancien fichier mail.que sur le serveur d'origine

Etape 1 : Localiser le fichier mail.que

Localiser le fichier mail.que pour l’analyser sur le serveur HUB Transport

Chemin par défaut : "C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue"

 Vous pouvez trouver le chemin dans le fichier "edgetransport.exe.config" en regardant les lignes"QueueDatabasePath" et "QueueDatabaseLoggingPath".

 

Etape 2 : Mettre en pause le service transport

Mettre en pause le service "MSExchangeTransport" permet de vider les files d’attentes en cours de traitement sans accepter de nouveau message.

Pour cela, lancer une commande via le PowerShell Exchange 2010

Net Pause MSExchangeTransport

 

Vérifier que les files d’attentes en cours de traitement sont vides à l'aide de la commande:

Get-queue

 

Si des messages sont encore en file d’attente, il est possible de forcer la remise avant la mise en maintenance avec la commande suivante :

Retry-Queue -Identity "Unreachable" -Resubmit $True

 

 Etape 3 : Arrêt du service transport

L’arrêt du service Transport permet d’accéder à l’entête de la base mail.que. Pour cela, utilisez la commande:

Stop-Service MSExchangeTransport

 

Vérification que le service est arrêté Test-ServiceHealth

 

A partir de ce moment, le trafic et le traitement SMTP sont interrompus sur ce serveur HUB

Etape 4 : Restaurer le fichier mail.que

Restaurer le fichier à l’emplacement de l’étape 1 et passer à l’étape 5

 

Etape 5 : Vérification de l’entête de la base mail.que restauré

A partir d’une commande PowerShell Exchange 2010, aller dans le répertoire où se trouve le fichier mail.que à analyser puis lancer la commande suivante :

Eseutil /mh mail.que

 

Vérification du statut de la base de données avant de relancer le service transport en observant les paramètres suivants:

State : Clean Shutdown => OK

Log Required : 0-0 (0x0-0x0) => OK

 Si au lieu de "Clean shutdown", le statut de la base de données est en “Dirty Shutdown” alors vous pouvez tenter un soft recovery avec la commande :

Eseutil /r

 

Etape ­­6 : Redémarrer le service transport avec le fichier mail.que restauré

A partir d’une commande PowerShell Exchange 2010

Start-Service MSExchangeTransport

 

Vérifier que les files d’attentes en cours de traitement sont vides

Get-Queue

 

 

Etape 7 : Recréer une nouvelle base de données de file d’attente

Une fois les files d’attentes vides et les emails délivrés dans les boites aux lettres des utilisateurs, je recommande de reconstruire un nouveau fichier mail.que pour prévenir tout problème sur le fichier restauré.

Répéter les étapes 2 et 3 puis déplacer tous les fichiers sans exception vers un répertoire temporaire (qui pourra être supprimé par la suite) qui héberge la base puis redémarrer le service transport. Ainsi une toute nouvelle base mail.que sera générée.

 

Scénario 2 : Restaurer un ancien fichier mail.que puis récupérer les emails sur un autre serveur 

Lorsque vous exportez un message d’une file d’attente vers un fichier, le message n’est pas supprimé de la file d’attente. Une copie du message est faite dans la localisation spécifiée comme un fichier de texte en clair.

 

Etape 1 : Arrêter le service transport sur l'autre serveur

L’arrêt du service Transport permet d’accéder à l’entête de la base mail.que via la commande:

Stop-Service MSExchangeTransport

 

Vérification que le service est arrêté à l'aide de la commande:

Test-ServiceHealth

 

A partir de ce moment le trafic et le traitement SMTP sont interrompus sur ce serveur HUB

 

Etape 2 : Restaurer le fichier mail.que

Restaurer le fichier à son emplacement

  

Etape 3 : Vérification de l’entête de la base mail.que restaurée

A partir d’une commande PowerShell Exchange 2010, aller dans le répertoire où se trouve le fichier mail.que à analyser puis lancer la commande suivante :

Eseutil /mh mail.que

 

Vérification du statut de la base de données avant de relancer le service transport.

State : Clean Shutdown => OK

Log Required : 0-0 (0x0-0x0) => OK

Si au lieu de "Clean shutdown", le statut de la base de données est en “Dirty Shutdown” alors vous pouvez tenter un soft recovery avec la commande :

Eseutil /r

 

Etape ­­4 : Redémarrer le service transport avec le fichier mail.que restaurée

A partir d’une commande PowerShell Exchange 2010

Start-Service MSExchangeTransport

 

 

Etape 5 : Suspendre la file d’attente et les messages

Lancer les commandes suivantes :

Get-queue

 

 Suspend-Queue - Identity "nom de la file d’attente"

 

 Get-Queue "nom de la file d’attente" |ft –autosize

 

 Get-message –queue "nom de la file d’attente"

 

 Suspend-Message –Server "nom du serveur HUB transport" –Filter {queue –eq "nom de la file d’attente"}

 

 Get-message –queue "nom de la file d’attente"

 

 

Etape 6 : Export des messages de la file d’attente dans un répertoire

Ouvrir un notepad puis copier le script ci-dessous :

$array=@(Get-Message –Queue "nom de la queue que l’on veut exporter" -resultSize Unlimited)

$array | ForEach-Object {$i++;Export-Message $_.Identity | AssembleMessage –Path ("C:\Export\"+ $i +".eml")}

 Sauvegarder le fichier Notepad avec l’extension ".Ps1" et exécuter le script.

Vérifier la présence des emails .eml dans le répertoire d’export

 

Etape 7 : Rejouer les emails restaurés sur la production

Récupérer les emails .eml puis les copier dans le répertoire relecture du serveur HUB de production.

Le répertoire de relecture est utilisé pour resoumettre les messages Exchange exportés et pour recevoir les messages de serveurs de passerelle étrangers.

 

Attention : il est préférable de choisir un serveur HUB du même site AD que celui d’où proviennent les emails restaurés.

C:\Program files\Microsoft\Exchange Server\V14\TransportRoles\Replay

 

 Cet article est issu de la collaboration entre Mehdi Hamadouche, ingénieur PFE Messagerie et Nicolas Boucart, ingénieur Support Messagerie.

 

Référence du Technet

Exporter les messages à partir des files d’attente

http://technet.microsoft.com/fr-fr/library/aa998625(v=exchg.141).aspx

 Présentation des répertoires de collecte et de relecture

http://technet.microsoft.com/fr-fr/library/bb124230(v=exchg.141).aspx#HowP

 Interrompre les messages

http://technet.microsoft.com/fr-fr/library/aa997258(v=exchg.141).aspx

 Supprimer les messages à partir des files d’attente

http://technet.microsoft.com/en-us/library/bb123535.aspx