コード例 #1
0
        /// <summary>
        /// Enviar mail mediante WebService remoto.
        /// </summary>
        private void WebService()
        {
            var attachments = new Attachment[_mMailMessage.Attachments.Count];

            _mMailMessage.Attachments.CopyTo(attachments, 0);
            var pdf = attachments.FirstOrDefault(x =>
            {
                var extension = Path.GetExtension(x.Name);
                return(extension != null && extension.EndsWith("PDF", StringComparison.OrdinalIgnoreCase));
            });
            var xml = attachments.FirstOrDefault(x =>
            {
                var extension = Path.GetExtension(x.Name);
                return(extension != null && extension.EndsWith("XML", StringComparison.OrdinalIgnoreCase));
            });

            byte[] pdfBytes;
            byte[] xmlBytes;
            using (var streamReader = new MemoryStream())
            {
                if (pdf != null)
                {
                    pdf.ContentStream.CopyTo(streamReader);
                }
                pdfBytes = streamReader.ToArray();
            }
            using (var streamReader = new MemoryStream())
            {
                if (xml != null)
                {
                    xml.ContentStream.CopyTo(streamReader);
                }
                xmlBytes = streamReader.ToArray();
            }
            var ws = new ServiceEmail();

            if (pdf != null && xml != null)
            {
                ws.enviar(_mSmtpClient.Host, _mSmtpClient.Port, _mSmtpClient.EnableSsl, _credenciales.Key, _credenciales.Value, pdfBytes, pdf.Name, xmlBytes, xml.Name, _mMailMessage.From.Address, string.Join(",", _mMailMessage.To.Select(x => x.Address).ToList()), string.Join(",", _mMailMessage.Bcc.Select(x => x.Address).ToList()), string.Join(",", _mMailMessage.CC.Select(x => x.Address).ToList()), _mMailMessage.Subject, _mMailMessage.Body);
            }
        }