1

Unterstützt Microsoft Graph oder Outlook REST API das Importieren vorhandener E-Mails in ein Office 365-Postfach?Importieren vorhandener E-Mails in Office 365 unter Beibehaltung des ursprünglichen Datums

Per Definition bedeutet Importieren das Kopieren von E-Mails auf eine Weise, die ihre ursprünglichen Informationen einschließlich ihres Erstellungs-/Sende-/Empfangsdatums beibehält.

Ich habe diese Endpunkte ohne Erfolg versucht:

Also entweder habe ich sie falsch verwendet wird, oder es ist einfach, dass sie Einstellung nicht unterstützen Datum- verwandte Felder.

Antwort

1

Nein, die APIs können nicht importiert werden. Es ist eine großartige Idee! Sie sollten einen Eintrag in unserem UserVoice Forum machen.

+0

Ah, werde ich tun. Was ist die nächste API, die diese Fähigkeit bietet? Wird die EWS Managed API den Zweck erfüllen? – lolski

+0

EWS kann das tun, besonders wenn Sie einen MIME-Stream zum Importieren haben: https://msdn.microsoft.com/en-us/library/office/dn672319(v=exchg.150).aspx –

0

Was kann ich verstehen, dass Sie irgendwo auf einem Archivierungsserver bestehende E-Mails haben, und Sie mögen, dass sie zu Ihrem Outlook Online oder Outlook Office 365

importieren Was Sie tun können, dass Sie den Exchange-Web-Service nutzen können, und Importieren Sie Ihre exportierten E-Mails. Meistens können die E-Mails im .eml oder .msg Format importiert werden. Ich kann Ihnen die Anleitung für .eml-Dateien zur Verfügung stellen.

Auf Ihrem Archivierungsserver können Sie die EML-Dateisicherungen von E-Mails erhalten oder Sie können eine E-Mail generieren, indem Sie eine E-Mail aus Outlook Desktop/Mozilla Thunderbird zu Testzwecken exportieren.

Jetzt können Sie die Nuget Package Microsoft.Exchange.WebServices verwenden, die eigentlich API für Microsoft Exchange Web Services verwaltet wird

Sie können den folgenden Code

void main() 
    { 
     ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); 
     // Get the information of the account 
     service.Credentials = new WebCredentials("account email here", "account password here"); 
     service.AutodiscoverUrl("account email here", RedirectionUrlValidationCallback); 
     UploadMIMEEmail(service); 
    } 

    public static bool RedirectionUrlValidationCallback(string redirectionUrl) 
    { 
     // The default for the validation callback is to reject the URL. 
     bool result = false; 

     Uri redirectionUri = new Uri(redirectionUrl); 

     // Validate the contents of the redirection URL. In this simple validation 
     // callback, the redirection URL is considered valid if it is using HTTPS 
     // to encrypt the authentication credentials. 
     if (redirectionUri.Scheme == "https") 
     { 
      result = true; 
     } 
     return result; 
    } 


    private static void UploadMIMEEmail(ExchangeService service) 
    { 
     EmailMessage email = new EmailMessage(service); 

     string emlFileName = @"E:\asad.eml"; 

     using (FileStream fs = new FileStream(emlFileName, FileMode.Open, FileAccess.Read)) 
     { 
      byte[] bytes = new byte[fs.Length]; 
      int numBytesToRead = (int)fs.Length; 
      int numBytesRead = 0; 

      while (numBytesToRead > 0) 
      { 
       int n = fs.Read(bytes, numBytesRead, numBytesToRead); 

       if (n == 0) 
        break; 

       numBytesRead += n; 
       numBytesToRead -= n; 
      } 

      // Set the contents of the .eml file to the MimeContent property. 
      email.MimeContent = new MimeContent("UTF-8", bytes); 
     } 

     // Indicate that this email is not a draft. Otherwise, the email will appear as a 
     // draft to clients. 
     ExtendedPropertyDefinition PR_MESSAGE_FLAGS_msgflag_read = new ExtendedPropertyDefinition(3591, MapiPropertyType.Integer); 
     email.SetExtendedProperty(PR_MESSAGE_FLAGS_msgflag_read, 1); 

     // This results in a CreateItem call to EWS. The email will be saved in the Inbox folder. 
     email.Save(WellKnownFolderName.Inbox); 
    } 

diese Methode Was nutzen tut, ist, dass die Uploads Senden Sie eine E-Mail an den Exchange-Server als importierte E-Mail mit allen E-Mail-Daten, die genau in der exportierten .eml gefunden wurden.

Wenn Sie Server austauschen läuft lokal/innerhalb von Domäne, dann können Sie auch den Austausch URL angeben, indem

service.Url = new Uri("https://computername.domain.contoso.com/EWS/Exchange.asmx"); 

Auch wenn Sie den Standard-Anmeldeinformationen anmelden möchten, dann können Sie angeben

service.UseDefaultCredentials = true; 

für weitere Informationen können Sie folgen

https://msdn.microsoft.com/en-us/library/office/dn672319(v=exchg.150).aspx#bk_importproperties

https://code.msdn.microsoft.com/how-to-import-vcard-files-ffa0ff50

Verwandte Themen