public int SendMessages(int id,
                                IEnumerable <MailAttachment> attachments,
                                IEnumerable <string> to,
                                IEnumerable <string> bcc,
                                IEnumerable <string> cc,
                                int replyToId,
                                string from,
                                string body,
                                bool importance,
                                IEnumerable <int> tags,
                                string streamId,
                                string subject)
        {
            var item = new MailSendItem
            {
                Attachments = new List <MailAttachment>(attachments),
                Bcc         = new List <string>(bcc),
                Cc          = new List <string>(cc),
                ReplyToId   = replyToId,
                From        = from,
                HtmlBody    = body,
                Important   = importance,
                Labels      = new List <int>(tags),
                StreamId    = streamId,
                Subject     = subject,
                To          = new List <string>(to)
            };

            return(SendQueue.Send(TenantId, Username, item, id));
        }
Esempio n. 2
0
        public int SendMessage(int id,
                               IEnumerable <MailAttachment> attachments,
                               IEnumerable <string> to,
                               IEnumerable <string> bcc,
                               IEnumerable <string> cc,
                               string mimeMessageId,
                               string mimeReplyToId,
                               string from,
                               string body,
                               bool importance,
                               IEnumerable <int> tags,
                               string streamId,
                               string subject,
                               FileShare fileLinksShareMode
                               )
        {
            var item = new MailSendItem
            {
                Attachments        = new List <MailAttachment>(attachments),
                Bcc                = new List <string>(bcc),
                Cc                 = new List <string>(cc),
                MimeMessageId      = string.IsNullOrEmpty(mimeMessageId) ? MailBoxManager.CreateMessageId() : mimeMessageId,
                MimeReplyToId      = mimeReplyToId,
                From               = from,
                HtmlBody           = body,
                Important          = importance,
                Labels             = new List <int>(tags),
                StreamId           = streamId,
                Subject            = subject,
                To                 = new List <string>(to),
                FileLinksShareMode = fileLinksShareMode
            };

            var accounts    = MailBoxManager.GetAccountInfo(TenantId, Username).ToAddressData();
            var mailAddress = new MailAddress(item.From);
            var account     = accounts.FirstOrDefault(a => a.Email.ToLower().Equals(mailAddress.Address));

            if (account == null)
            {
                throw new ArgumentException("Mailbox not found");
            }

            if (account.IsGroup)
            {
                throw new InvalidOperationException("Sending emails from a group address is forbidden");
            }

            if (id > 0)
            {
                var message = GetMessage(id, false, false, false);

                if (message.Folder != MailFolder.Ids.drafts)
                {
                    throw new InvalidOperationException("Sending emails is permitted only in the Drafts folder");
                }
            }

            return(SendQueue.Send(TenantId, Username, item, id, account.MailboxId));
        }
        public int SendMessages(int id,
                                IEnumerable <MailAttachment> attachments,
                                IEnumerable <string> to,
                                IEnumerable <string> bcc,
                                IEnumerable <string> cc,
                                string mimeMessageId,
                                string mimeReplyToId,
                                string from,
                                string body,
                                bool importance,
                                IEnumerable <int> tags,
                                string streamId,
                                string subject)
        {
            var item = new MailSendItem
            {
                Attachments   = new List <MailAttachment>(attachments),
                Bcc           = new List <string>(bcc),
                Cc            = new List <string>(cc),
                MimeMessageId = string.IsNullOrEmpty(mimeMessageId) ? MailBoxManager.CreateMessageId() : mimeMessageId,
                MimeReplyToId = mimeReplyToId,
                From          = from,
                HtmlBody      = body,
                Important     = importance,
                Labels        = new List <int>(tags),
                StreamId      = streamId,
                Subject       = subject,
                To            = new List <string>(to)
            };

            var accounts     = MailBoxManager.GetAccountInfo(TenantId, Username).ToAddressData();
            var mail_address = new MailAddress(item.From);
            var account      = accounts.FirstOrDefault(a => a.Email.ToLower().Equals(mail_address.Address));

            if (account == null)
            {
                throw new ArgumentException("no such mailbox");
            }

            return(SendQueue.Send(TenantId, Username, item, id, account.MailboxId));
        }