none
Problemi X400 con EML message creato da zero RRS feed

  • Domanda

  • Salve. Nella mia architettura (mono foresta e mono dominio) dovendo usare il protocollo X400 per far comunicare 2 routing group (divisione logica tra 2 grouppi di utenze di posta) ed allo stesso tempo usare Exchange 2010 (per una questione che la gestione/customizzazione della messaggistica è resa più agevole rispetto ad una soluzione basata solo su Exchange 2003), quando creo un messaggio eml tra 2 utenze appartenenti a 2 routing group diversi ho un problema proprio X400. Infatti, una volta dirottato verso Exchange 2010 il messaggio eml creato da zero (e di seguito riporto uno stralcio di codice) che a sua volta passa per Exchange 2003 (facendo leva a meccanismi di forwarding semi automatici), l'istanza di Exchange 2003 mi risponde con una errore sintattico lato X400 riscontrato nel messaggio. Ecco lo stralcio di codice indicato in precedenza:

    ---------------------------------------------

    MemoryStream ms = new MemoryStream();

    MimeDocument mimeDoc = new MimeDocument();

    MimePart tnefPart = new MimePart(MHSConnectorLib.CostantsAndEnumerates.Costants.OtherCostants.Others.TNEFCONTENT,
                                                                ContentTransferEncoding.Binary,
                                                                ms,
                                                                CachingMode.Source);
                                        //
                                        //scrive il TNEF
                                        writer = new TnefWriter(tnefPart.GetContentWriteStream(ContentTransferEncoding.Binary), 0);
                                        //
                                        //  VENGONO INSERITE MAPI PROPERTIES
                                        //ESEMPIO DI INSERIMENTO DI UNA SOLA MAPI PROPERTY ANCHE SE VENGONO INSERITE

                                       //MOLTE DI PIU'

                                       writer.StartAttribute(TnefAttributeTag.MapiProperties, TnefAttributeLevel.Message);

                                       writer.WriteProperty(TnefPropertyTag.AlternateRecipientAllowed, true);

                                       mimeDoc.RootPart = tnefPart;
                                       EmailMessage emailItem = EmailMessage.Create(mimeDoc);

    //viene salvato il tnef nel messaggio

    if (null != writer)
    {
          writer.Flush();
          writer.Close();
          writer.Dispose();
          writer = null;
    }
    //trasferimento verso Exchange

    String sPath = "EXCHANGE_PICKUP_DIR" + Guid.NewGuid().ToString() + ".eml";                                   
    FileStream fsFileStream = new FileStream(sPath, FileMode.OpenOrCreate);
    //
    emailItem.MimeDocument.WriteTo(fsFileStream);
    fsFileStream.Flush();

    Dove EXCHANGE_PICKUP_DIR è la pickup dir di Exchange. L'esempio è solo indicativo e serve per aggiornare solo una MAPI property (TnefPropertyTag.AlternateRecipientAllowed), anche se l'aggiornamento ha coinvolto quasi la totalità di MAPI properties presenti. Nel routing group di origine il messaggio arriva a destinazione in Outlook corretto. Nell'altro routing group non arriva per il problema X400 su indicato.

    Se potete aiutarmi mi fareste felice.

    Un Saluto ed un grazie in anticipo.

    giovedì 22 giugno 2017 18:08