コード例 #1
0
 public static AttachmentDomain MapToDomainModel(this AttachmentGmail attachment)
 {
     return(new AttachmentDomain
     {
         Name = attachment.Name,
         SizeMb = attachment.SizeMb
     });
 }
コード例 #2
0
        private EmailGmail CreateEmail(MessagePart emailInfo, long internalDate)
        {
            var senderEmail = DataParser.ParseSenderEmail(emailInfo.Headers.FirstOrDefault(header => header.Name == "From").Value);

            var senderName = String.Empty;

            if (emailInfo.Headers.Any(header => header.Name == "From"))
            {
                senderName = DataParser.ParseSenderName(emailInfo.Headers.FirstOrDefault(header => header.Name == "From").Value);
            }

            string subject = String.Empty;

            if (emailInfo.Headers.Any(header => header.Name == "Subject"))
            {
                subject = this.SanitizeContent(emailInfo.Headers.FirstOrDefault(header => header.Name == "Subject").Value);
            }

            var dateReceived    = DataParser.ParseDate(internalDate);
            var attachmentsList = new List <AttachmentGmail>();

            if (emailInfo.Parts != null)
            {
                if (emailInfo.Parts[0].MimeType != "text/plain")
                {
                    var attachmentsInfoReceived = emailInfo.Parts.Skip(1);

                    foreach (var attachment in attachmentsInfoReceived)
                    {
                        var sizeMb = (double)attachment.Body.Size / (1024 * 1024);

                        var newAttachment = new AttachmentGmail
                        {
                            Name   = attachment.Filename,
                            SizeMb = sizeMb
                        };

                        attachmentsList.Add(newAttachment);
                    }
                }

                else if (emailInfo.Parts[1].MimeType == "multipart/related")
                {
                    var attachmentsInfoReceived = emailInfo.Parts[1].Parts.Skip(1);

                    foreach (var attachment in attachmentsInfoReceived)
                    {
                        var sizeMb = (double)attachment.Body.Size / (1024 * 1024);

                        var newAttachment = new AttachmentGmail
                        {
                            Name   = attachment.Filename,
                            SizeMb = sizeMb
                        };

                        attachmentsList.Add(newAttachment);
                    }
                }
            }
            else
            {
            }


            return(new EmailGmail
            {
                Received = dateReceived,
                SenderEmail = senderEmail,
                SenderName = senderName,
                Subject = subject,
                Attachments = attachmentsList
            });
        }