J'utilise le protocole IMAP pour obtenir le courrier électronique à partir des boîtes de réception. Maintenant, je dois convertir le résultat qui est une liste de MailMessage à RawContent, pour le convertir en OpenPop.Pop3 message, mais quand je l'utiliseComment faire pour convertir System.Net.MailMessage à RawContent
var message = nouveau OpenPop.Mime.Message (rawMessage);
si elle est le contenu contient le contenu persan, par exemple dans « From » ou « A » section du courrier électronique d'en-tête si le nom d'affichage est « مسعود بهرامی », Après le convertir en OpenPop message il convertir en « ???? ?????????? "
est ici code pour Extrait RawMessage de MailMessage
private const BindingFlags Flags = BindingFlags.Instance | BindingFlags.NonPublic;
private static readonly Type MailWriter = typeof(SmtpClient).Assembly.GetType("System.Net.Mail.MailWriter");
private static readonly ConstructorInfo MailWriterConstructor = MailWriter.GetConstructor(Flags, null, new[] { typeof(Stream) }, null);
private static readonly MethodInfo CloseMethod = MailWriter.GetMethod("Close", Flags);
private static readonly MethodInfo SendMethod = typeof(MailMessage).GetMethod("Send", Flags);
/// <summary>
/// A little hack to determine the number of parameters that we
/// need to pass to the SaveMethod.
/// </summary>
private static readonly bool IsRunningInDotNetFourPointFive = SendMethod.GetParameters().Length == 3;
/// <summary>
/// The raw contents of this MailMessage as a MemoryStream.
/// </summary>
/// <param name="self">The caller.</param>
/// <returns>A MemoryStream with the raw contents of this MailMessage.</returns>
public static MemoryStream RawMessage(this MailMessage self)
{
var result = new MemoryStream();
var mailWriter = MailWriterConstructor.Invoke(new object[] { result });
SendMethod.Invoke(self, Flags, null, IsRunningInDotNetFourPointFive ? new[] { mailWriter, true, true } : new[] { mailWriter, true }, null);
result = new MemoryStream(result.ToArray());
CloseMethod.Invoke(mailWriter, Flags, null, new object[] { }, null);
return result;
}
merci, mais cette web sera le résultat d'une exception "flux de mémoire n'est pas extensible." –