4 votes

Invitation à la réunion avec pièce jointe non reconnue dans Outlook 2010 / Office 365

Nous disposons d'une application .NET qui génère manuellement des invitations à des réunions à envoyer aux utilisateurs. Le processus que nous utilisons est le suivant :

  • Créez un System.Net.Mail.MailMessage et définissez les champs habituels (de/de/sujet/etc) Et les informations de la réunion en tant que pièce jointe (fichier ICS), encodage en 7 bits - c'est nécessaire pour les clients de messagerie qui ne reconnaissent pas les invitations de style Outlook
  • Ajoutez deux vues alternatives, text/plain et text/html, toutes deux encodées en 7 bits pour le texte de l'e-mail
  • Ajoutez une autre vue alternative avec "text/calendar; charset=UTF-8; method=REQUEST" avec le même texte ICS que le fichier ICS attaché ci-dessus, également encodé en 7 bits
  • Envoyez le message

Cela fonctionnait bien avec une configuration traditionnelle Outlook 2007 / Exchange (la pièce jointe n'est pas visible et le message est traité comme une demande de réunion), mais une fois que nous avons mis à niveau vers Outlook 2010/Office 365, les données ICS intégrées ne sont pas reconnues et le message apparaît comme un message régulier avec un fichier ICS attaché. En supprimant la pièce jointe, le message est correctement reconnu. Nous ne sommes pas sûrs que ce soit la nouvelle version d'Outlook ou Office 365 qui provoque ce changement, mais cela doit être l'un d'entre eux.

Quelqu'un sait-il pourquoi cela a changé et comment nous pouvons le réparer ?

2voto

happyreading Points 21

Nous avons rencontré un problème similaire. Dans notre cas, notre serveur de messagerie a été mis à niveau de Exchange 2003 à Exchange 2010, notre entreprise a migré certains comptes e-mail vers 2010. Nous utilisons toujours Outlook 2007 en front-end. Nous avons une application .NET qui crée des invitations à des réunions en tant que vue alternative et les envoie aux destinataires. Ceux dont les comptes e-mail ont été migrés ne reçoivent plus d'invitations en tant que demandes de réunion, mais juste un e-mail simple. Ceux qui restent sur Exchange 2003 n'ont aucun problème à recevoir les invitations en tant que demande de réunion. J'ai cherché en ligne et j'ai découvert qu'Exchange 2010 avait modifié la manière dont il traite les fichiers .ics et qu'il était plus restrictif que la version précédente. Le pire est qu'il ne suit pas les normes RFC et Microsoft estime que ce n'est pas de leur ressort d'essayer de comprendre quelle partie empêchait leur Exchange 2010 d'interpréter correctement les fichiers .ics. Ma solution de contournement est donc de ne pas envoyer les .ics en vue alternative, mais de les envoyer en tant que pièce jointe. Lorsqu'ils sont reçus dans les comptes e-mail qui ont été migrés vers 2010, la pièce jointe peut être vue par l'utilisateur et l'utilisateur peut cliquer sur la pièce jointe pour l'importer dans son calendrier.

0voto

Carlos Med Points 101

Outlook/Exchange attend à ce que le type de message soit text/calendar, pas text/multipart.

0voto

Hung Doan Points 862

J'ai rencontré ce problème récemment en utilisant System.Net.Mail :

  1. Envoyer un e-mail avec iCalendar comme vue alternative (text/calendar) sans pièce jointe : Cela fonctionne. - J'ai utilisé iCal.Net pour générer le message iCalendar.
  2. Envoyer un e-mail avec iCalendar comme vue alternative (text/calendar) avec pièce jointe : Cela fonctionne sur Windows 10 Mail, mais cela n'a pas fonctionné avec Outlook365.

La cause de ce problème est la suivante :

multipart/mixed
  multipart/alternative
    text/plain
    text/calendar;method=REQUEST
  multipart/mixed
    content-type (avec un content-disposition:attachment)

Mais Outlook365 s'attend à recevoir le message suivant :

multipart/mixed
  multipart/alternative
    text/plain
    text/calendar;method=REQUEST
  content-type (avec un content-disposition:attachment)

Lorsque Outlook reçoit un format de pièce jointe incorrect, il ignore étrangement la partie calendrier.

Ma solution : J'ai décidé d'utiliser MailKit pour envoyer des e-mails au lieu de System.Net.Mail. En utilisant cette bibliothèque, je peux contrôler le format du message.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X