2010-02-16 6 views
0

J'utilise la méthode ci-dessous pour répondre aux courriers électroniques entrant dans une boîte aux lettres de fonction métier.L'utilisation de la fonction de rachat pour répondre à un message ne définit que le texte du corps par intermittence

Le corps du texte ajouté est seulement défini par intermittence. Cette méthode n'est appelée que lorsqu'un internaute a envoyé un e-mail pour se désabonner d'un mailing mais l'adresse e-mail de l'expéditeur (ou du corps) n'a pas été trouvée dans la base de données et nous demandons de nous envoyer l'adresse mail souhaitée se désinscrire.

private void replyToMail(OutlookItem item) 
     { 
      RDOSession session = new RDOSession(); 
      session.Logon(null, null, null, true, null, null); 
      RDOMail thisItem = session.GetMessageFromID(item.EntryID, item.StoreID, null); 
      RDOMail reply = thisItem.Reply(); 

      RDOAddressEntry optingout = session.AddressBook.GAL.ResolveName("optingout"); 
      //reply.Sender = optingout; this had no effect 
      reply.SentOnBehalfOf = optingout; 
      reply.Subject = "Automated Response - Could not complete unsubscribe"; 
      reply.Body = "This is an automated response from the Newsletter unsubscribe system. We couldn't find "+item.Sender+" in our database to unsubscribe you from our mailings.\r\n\r\nPlease reply to this mail and include the email address you want to unsubscribe.\r\n\r\nKind Regards\r\n."; 
      reply.Send(); 

      session.Logoff(); 
     } 

Répondre

0

J'ai dû éditer thingie.HTMLBody ainsi que thingie.Body.

Je suppose que j'aurais pu trouver comment dire quand définir la valeur de chacun mais puisque je veux juste être sûr que j'ai le contrôle du corps dans ce cas, je suis simplement en train de régler les deux.

0

Tout d'abord, si vous utilisez déjà OOM, il n'y a aucune raison d'appeler RDOSession.Logon. Vous pouvez simplement contrôler la propriété MAPIOBJECT: Remplacez la ligne session.Logon() par session.MAPIOBJECT = item.Application.Session.MAPIOBJECT par et non par.

Deuxièmement, est-ce que le message est reçu sans corps? Voyez-vous le bofy vide dans le dossier Éléments envoyés?

+0

Vous ne savez pas ce qu'est OOM ... le type OutlookItem transmis est une classe personnalisée utilisée dans le logiciel ... Excuses pour le manque de clarté. Le courrier reçu a un corps comme vous le feriez si vous répondez à une réponse, puis l'envoyez sans rien taper. En d'autres termes, il semble que mon appel à Reply.Body = "..."; n'a aucun effet. –