如何防止MS Outlook发送纯文本邮件中附带的winmail.dat?

时间:2014-04-14 15:19:11

标签: c# outlook mapi winmail.dat

我目前正在使用一项网络服务,如果发生错误或发送的数据格式不正确,必须向客户回复电子邮件。 我正在使用 MAPIMessage 类在运行该服务的计算机中打开的任何Microsoft Outlook帐户中将邮件发送为“未读”。

这是发送电子邮件的方法的代码。

    private void EnviarMail(string destinatarios, string CC, string BCC, string asunto, string texto, byte[] buffer, string nombreArchivo)
    {
        if (string.IsNullOrEmpty(destinatarios))
            throw new ArgumentNullException("destinatarios", "El destinatario de correo no puede estar vacío");

        try
        {
            if (_mapi.OpenOutbox())
            {
                MAPIMessage message = new MAPIMessage();

                if (message.Create(_mapi, MAPIMessage.Priority.IMPORTANCE_NORMAL))
                {
                    message.SetSenderName(Settings.Default.Remitente);
                    message.SetSenderEmail(Settings.Default.RemitenteCorreo);
                    message.SetSubject(asunto);
                    message.SetBody(texto);

                    foreach(string destinatario in destinatarios.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries))
                        message.AddRecipient(destinatario.Trim());

                    //some other code irrelevant for the question 

                    if (buffer != null)
                    {
                       //doesn't matter right now
                    }

                    if (!message.Send())
                        throw new ApplicationException("No pudo enviarse el correo electrónico.");
                }
            }
        }
        catch
        {
            throw;
        }
    }

就像我之前说的那样,这封邮件必须只是纯文本,所以我将最后两个参数设置为null,以便在我回复邮件时指定该方法没有任何附件:

EnviarMail(someCustomerEmail, "", "", Properties.Resources.SomeSubject, someBodyText, null, "");

事实是,这封电子邮件包含文件winmail.dat,这不是我想要的。这是通过在Gmail帐户中测试的外观: enter image description here

0 个答案:

没有答案