Beispiel #1
0
        public MailMessageItem ToMailMessageItem(int tenant, string user)
        {
            Address fromVerified;

            if (Validator.ValidateSyntax(From))
            {
                fromVerified = new Address(From, DisplayName);
            }
            else
            {
                throw new ArgumentException(MailApiResource.ErrorIncorrectEmailAddress
                                            .Replace("%1", MailApiResource.FieldNameFrom));
            }

            var messageItem = new MailMessageItem
            {
                From                   = fromVerified.ToString(),
                FromEmail              = fromVerified.Email,
                To                     = string.Join(", ", To.ToArray()),
                Cc                     = Cc != null?string.Join(", ", Cc.ToArray()) : "",
                                   Bcc = Bcc != null?string.Join(", ", Bcc.ToArray()) : "",
                                             Subject       = Subject,
                                             Date          = DateTime.Now,
                                             Important     = Important,
                                             HtmlBody      = HtmlBody,
                                             Introduction  = MailMessageItem.GetIntroduction(HtmlBody),
                                             StreamId      = StreamId,
                                             TagIds        = Labels != null && Labels.Count != 0 ? new ASC.Mail.Aggregator.Common.Collection.ItemList <int>(Labels) : null,
                                             Size          = HtmlBody.Length,
                                             MimeReplyToId = MimeReplyToId,
                                             MimeMessageId = string.IsNullOrEmpty(MimeMessageId) ? MailBoxManager.CreateMessageId() : MimeMessageId
            };

            if (messageItem.Attachments == null)
            {
                messageItem.Attachments = new List <MailAttachment>();
            }

            Attachments.ForEach(attachment =>
            {
                attachment.tenant = tenant;
                attachment.user   = user;
            });

            messageItem.Attachments.AddRange(Attachments);
            return(messageItem);
        }