@Keith Hampshire
I guess you need this script, it will export user mailbox from Exchange server:
Get-Mailbox -ResultSize unlimited |where{$_.RecipientTypeDetails -eq "UserMailbox"} | select Name,PrimarySmtpAddress | Export-Csv c:\temp\1.csv -NoTypeInformation
Then, you could copy this CSV file to another Exchange server, then run command below to export those mailbox as mail contact:
Import-Csv c:\temp\1.csv | foreach {New-MailContact -Name $_.Name -ExternalEmailAddress $_.PrimarySmtpAddress}
Please note, if there exists same username on those Exchange servers, you will get issue when creating mail contact. Because this username has been used.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.