Пример #1
0
        public async Task <int> SyncEmails()
        {
            //Create a GmailService which crucial for accecing Gmail API.
            GmailService service = await this.GetServiceAsync();

            //Get all the messages from INBOX which are mark with UNREAD label.
            ListMessagesResponse emailListResponse = await GetNewEmailsAsync(service);

            if (emailListResponse != null && emailListResponse.Messages != null)
            {
                foreach (var email in emailListResponse.Messages)
                {
                    var emailInfoRequest = service.Users.Messages.Get(gmailAccountName, email.Id);

                    //After executeAsync we recieve one email with all his data and attachments.
                    var currentMessage = await emailInfoRequest.ExecuteAsync();

                    var emailDTO = this.messageToEmailDTOPmapper.MapToDTO(currentMessage);

                    await emailService.CreateAsync(emailDTO);

                    await this.MarkAsReadAsync(service, email.Id);
                }
                return(emailListResponse.Messages.Count);
            }
            return(0);
        }
Пример #2
0
        /// <summary>
        /// Lists ALL messages in the user's mailbox according to the parameters
        /// </summary>
        /// <param name="userId">The user's email address. The special value "me" can be used to indicate the authenticated user.</param>
        /// <param name="includeSpamTrash">Include messages from SPAM and TRASH in the results. (Default: false)</param>
        /// <param name="labelIds">Only return messages with labels that match all of the specified label IDs.</param>
        /// <param name="maxResults">Maximum number of messages to return.</param>
        /// <param name="query">Only return messages matching the specified query. Supports the same query format as the Gmail search box. For example, "from:[email protected] rfc822msgid:<*****@*****.**> is:unread". Parameter cannot be used when accessing the api using the gmail.metadata scope.</param>
        /// <returns></returns>
        public List <Message> ListAllMessages(bool?includeSpamTrash = null, IEnumerable <string> labelIds = null, int?maxResults = null, string query = null)
        {
            List <Message> messages = new List <Message>();

            UsersResource.MessagesResource.ListRequest request = GmailService.Users.Messages.List("me");
            request.Q = query == null ? null : query;
            request.IncludeSpamTrash = includeSpamTrash == null ? false : includeSpamTrash;
            request.LabelIds         = labelIds == null ? null : new Google.Apis.Util.Repeatable <string>(labelIds);
            request.MaxResults       = maxResults == null ? null : maxResults;

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();

                    messages.AddRange(response.Messages);

                    request.PageToken = response.NextPageToken;
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"An error occurred: {ex.Message}");
                }
            } while (!String.IsNullOrEmpty(request.PageToken));

            return(messages);
        }
Пример #3
0
        private List <Message> GetMessages(GmailService service, string[] labels = null, string query = null, string userId = "me")
        {
            List <Message> result = new List <Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            if (labels != null)
            {
                request.LabelIds = labels;
            }
            if (!string.IsNullOrWhiteSpace(query))
            {
                request.Q = query;
            }

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    result.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            } while (!string.IsNullOrEmpty(request.PageToken));

            return(result);
        }
Пример #4
0
        public static List <Google.Apis.Gmail.v1.Data.Message> ListInboxMessages(GmailService service, String query)
        {
            List <Google.Apis.Gmail.v1.Data.Message> result = new List <Google.Apis.Gmail.v1.Data.Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(_userId);
            request.Q        = query;
            request.LabelIds = "INBOX";

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    if (response.Messages != null && response.Messages.Count > 0)
                    {
                        result.AddRange(response.Messages);
                        request.PageToken = response.NextPageToken;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));

            return(result);
        }
Пример #5
0
        public List <Message> GetAllMessageIds()
        {
            List <Message> result = new List <Message>();

            String query = "from: [email protected]";

            UsersResource.MessagesResource.ListRequest request = this.user.GmailService.GmailService.Users.Messages.List(this.user.Email);

            request.Q = query;

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    result.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));

            return(result);
        }
Пример #6
0
        public ListMessagesResponse MyInbox(long UserId)
        {
            ListMessagesResponse response = new ListMessagesResponse();

            try
            {
                using (IDbConnection conn = GetConnection())
                {
                    response.messages = conn.GetList <Messages>("where RecipientID = ?UserId", new { UserId }).ToList();
                    if (response.messages.Count > 0)
                    {
                        response.Status      = true;
                        response.Description = "Successful";
                    }
                    else
                    {
                        response.Status      = false;
                        response.Description = "No data";
                    }
                }
            }
            catch (Exception ex)
            {
                response.Status      = false;
                response.Description = ex.Message;
            }
            return(response);
        }
Пример #7
0
        /// <summary>
        /// List all Messages of the user's mailbox matching the query.
        /// </summary>
        /// <param name="query">String used to filter Messages returned.</param>
        public List <Message> ListMessages(GmailSearch query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }
            List <Message> result = new List <Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            if (query.Label != null && query.Label.Any())
            {
                request.LabelIds = new Repeatable <string>(GmailApiHelper.GetLabel(query.Label));
            }
            request.Q = query.ToString();
            do
            {
                ListMessagesResponse response = request.Execute();
                if (response.Messages != null)
                {
                    result.AddRange(response.Messages);
                }
                if (response.NextPageToken != null)
                {
                    request.PageToken = response.NextPageToken;
                }
            }while (!string.IsNullOrEmpty(request.PageToken));
            return(result);
        }
        public List <Message> ListMessages(GmailService service, string userId)
        {
            List <Message> result = new List <Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);


            ListMessagesResponse response = request.Execute();

            result.AddRange(response.Messages);
            request.PageToken = response.NextPageToken;

            //var firstMessage = service.Users.Messages.Get(userId, result.First().Id).Execute();
            var payload = new StringBuilder();
            var emailsWithComponents = new List <Email>();

            foreach (var message in result)
            {
                var email = new Email();
                email.OriginalId = message.Id;

                foreach (var part in message.Payload.Parts)
                {
                    byte[] data          = FromBase64ForUrlString(part.Body.Data);
                    string decodedString = Encoding.UTF8.GetString(data);
                    payload.Append(decodedString);
                }
            }
            var mailMessage = payload.ToString();


            return(result);
        }
        // Send request for retrieving all emails of the given label with an optional search parameter.
        public static IList <Message> ListMessages(GmailService service, String userId, MessageLabel label, string query = null)
        {
            List <Message> result = new List <Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            request.LabelIds = label.ToString();
            if (query != null)
            {
                request.Q = query;
            }

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    result.AddRange(response.Messages);
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));

            return(result);
        }
        public async void SynchronizeMails(ListMessagesResponse emailListResponse, List <Mail> MailsInDB)
        {
            try
            {
                GmailService gmailService = await GetGmailService();

                foreach (Message msg in emailListResponse.Messages)
                {
                    var emailInfoRequest = gmailService.Users.Messages.Get("*****@*****.**", msg.Id);
                    //make another request for that email id...
                    var emailInfoResponse = await emailInfoRequest.ExecuteAsync();

                    if (emailInfoResponse != null)
                    {
                        if (MailExistsinDB(emailInfoResponse, MailsInDB) == false)
                        {
                            await InsertMailIntoDB(emailInfoResponse);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Пример #11
0
        public ListMessagesResponse ListByThreadID(string ThreadID)
        {
            ListMessagesResponse response = new ListMessagesResponse();

            try
            {
                using (IDbConnection conn = GetConnection())
                {
                    response.messages = conn.GetList <Messages>("Where ThreadID = ?ThreadID", new { ThreadID }).ToList();
                    if (response.messages.Count > 0)
                    {
                        response.Status      = true;
                        response.Description = "Successful";
                    }
                    else
                    {
                        response.Status      = false;
                        response.Description = "No data";
                    }
                }
            }
            catch (Exception ex)
            {
                response.Status      = false;
                response.Description = ex.Message;
            }
            return(response);
        }
        /// <summary>
        /// Populates the email queue and delete email asynchronous.
        /// </summary>
        /// <param name="response">The response.</param>
        /// <exception cref="ArgumentNullException">Response from email {nameof(response)} is null</exception>
        private async Task PopulateEmailQueueAndDeleteEmailAsync(ListMessagesResponse response, bool deleteEmail = true)
        {
            try
            {
                if (response is null)
                {
                    throw new ArgumentNullException($"Response from email {nameof(response)} is null ");
                }

                int counter = 0;
                foreach (Message mail in response.Messages)
                {
                    counter++;

                    var message = await GoogleServiceHelper.UsersResource.Messages.Get(USER_ID, mail.Id).ExecuteAsync();

                    LabelSpecificEmails.Enqueue(message);
                    LogInformation($"Adding emails to queue [ {counter} / {response.Messages.Count} ]");

                    if (deleteEmail)
                    {
                        await GoogleServiceHelper.UsersResource.Messages.Trash(USER_ID, mail.Id).ExecuteAsync();

                        LogInformation($"Deleting email [ {counter} / {response.Messages.Count} ]");
                    }
                }
            }
            catch (Exception e)
            {
                LogError(e);
                throw;
            }
        }
Пример #13
0
        static void Main(string[] args)
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = "token.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Gmail API service.
            var service = new GmailService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });
            gmail gmail = new gmail(service);
            ListMessagesResponse MessagesList = gmail.getUnreadedMwssages();

            foreach (var message in MessagesList.Messages)
            {
                var messageData = gmail.getMessageData(message.Id);
                foreach (var data in messageData.Payload.Headers)
                {
                    if (data.Name == "From")
                    {
                        string sender         = data.Value.Substring(data.Value.IndexOf("<")).Replace("<", "").Replace(">", "");
                        user   user           = new user(sender);
                        int    checkIndicator = user.check();
                        if (checkIndicator != 0)
                        {
                            break;
                        }
                        string attachmentId = messageData.Payload.Parts[1].Body.AttachmentId;
                        string fileName     = messageData.Payload.Parts[1].Filename;
                        if (attachmentId != null && messageData.Payload.Parts[1].MimeType == "application/vnd.ms-excel")
                        {
                            fileName = fileName.Substring(0, fileName.IndexOf("."));
                            byte[] b    = gmail.getAttachment(attachmentId, message.Id);
                            string root = @"D:\gmail-store.net\gmail store\public\";
                            if (!Directory.Exists(root + fileName + @"\"))
                            {
                                Directory.CreateDirectory(root + fileName + @"\");
                            }
                            File.WriteAllBytes(@"D:\gmail-store.net\gmail store\public\" + fileName + @"\" + sender + ".xls", b);
                        }
                    }
                }
            }
        }
Пример #14
0
        private IList <Message> RetrieveMessagesInfoByFilter(string filterQuery)
        {
            UsersResource.MessagesResource.ListRequest request = this.service.Users.Messages.List("me");
            request.Q = filterQuery;

            ListMessagesResponse res = request.Execute();

            return(res.Messages);
        }
Пример #15
0
        public async Task <int> calculateNewMails()
        {
            int x = 0;
            ListMessagesResponse MailsInGmail = await GetMailsFromGmail();

            ListResultDto <MailListDTO> MailsInDB = GetMails();

            x = (MailsInGmail.Messages.Count()) - (MailsInDB.Items.Count());
            return(x);
        }
        public IEnumerable <MailEntity> GetTransactionDetails(ListMessagesResponse listMessages, GmailService service)
        {
            foreach (var email in listMessages.Messages)
            {
                entity = new MailEntity();
                var emailInfoRequest  = service.Users.Messages.Get("me", email.Id);
                var emailInfoResponse = emailInfoRequest.Execute();

                if (emailInfoResponse != null)
                {
                    String from    = "";
                    String date    = "";
                    String subject = "";

                    //loop through the headers to get from,date,subject, body
                    foreach (var mParts in emailInfoResponse.Payload.Headers)
                    {
                        if (mParts.Name == "Date")
                        {
                            int index = mParts.Value.LastIndexOf(':') + 3;

                            string   datepulled = mParts.Value.Remove(index, mParts.Value.Length - index);
                            DateTime dt;
                            while (!DateTime.TryParse(datepulled, out dt))
                            {
                                datepulled = datepulled.Remove(0, 1);
                            }
                            entity.DOT = Convert.ToDateTime(datepulled);

                            //datepulled = datepulled.Remove(index, datepulled.Length - index).Trim();
                            entity.DOT = Convert.ToDateTime(datepulled);
                        }
                        else if (mParts.Name == "From")
                        {
                            entity.From = mParts.Value;
                        }
                        else if (mParts.Name == "Subject")
                        {
                            entity.Subject = mParts.Value;
                        }

                        if (entity.DOT != null && !string.IsNullOrWhiteSpace(entity.From) && emailInfoResponse.Payload.Body != null && !string.IsNullOrWhiteSpace(entity.Subject))
                        {
                            if (emailInfoResponse.Payload.MimeType == "text/html")
                            {
                                byte[] data = FromBase64ForUrlString(emailInfoResponse.Payload.Body.Data);
                                entity.Body = Encoding.UTF8.GetString(data);
                                lstentity.Add(entity);
                            }
                        }
                    }
                }
            }
            return(lstentity);
        }
Пример #17
0
        public async Task SyncMails()
        {
            try
            {
                ListMessagesResponse emailListResponse = await GetMailsFromGmail();

                _iMailRepository.SynchronizeMails(emailListResponse, GetAllList());
            }
            catch (Exception ex)
            {
            }
        }
Пример #18
0
        /// <summary>
        /// List all Messages of the user's mailbox matching the query.
        /// </summary>
        ///
        ///
        /// <param name="service">Gmail API service instance.</param>
        /// <param name="userId">User's email address. The special value "me"
        /// can be used to indicate the authenticated user.</param>
        /// <param name="query">String used to filter Messages returned.</param>
        public List <Message> ListMessages(String userId, String query)
        {
            // If modifying these scopes, delete your previously saved credentials
            // at ~/.credentials/gmail-dotnet-quickstart.json
            string[] Scopes          = { GmailService.Scope.GmailModify, GmailService.Scope.GmailReadonly, GmailService.Scope.MailGoogleCom };
            string   ApplicationName = "Gmail API .NET Quickstart";

            UserCredential credential;

            using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read)) {
                string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
                credPath   = Path.Combine(credPath, ".credentials/gmail-dotnet-quickstart.json");
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Gmail API service
            var service = new GmailService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            List <Message> result = new List <Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            request.Q = query;

            do
            {
                try {
                    ListMessagesResponse response = request.Execute();
                    result.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                }
                catch (Exception e) {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));

            foreach (var item in result)
            {
                Console.WriteLine(item);
            }
            return(result);
        }
Пример #19
0
        public async Task <IActionResult> GetListEmail(string labelId, string nameLabel)
        {
            string            userEmail    = User.FindFirst(u => u.Type == ClaimTypes.Email).Value;
            GmailService      service      = GetService();
            List <My_Message> listMessages = new List <My_Message>();
            List <Message>    result       = new List <Message>();
            var emailListRequest           = service.Users.Messages.List(userEmail);

            emailListRequest.LabelIds         = labelId;
            emailListRequest.IncludeSpamTrash = false;
            emailListRequest.MaxResults       = 1000;
            ListMessagesResponse emailListResponse = await emailListRequest.ExecuteAsync();

            if (emailListResponse != null && emailListResponse.Messages != null)
            {
                foreach (Message email in emailListResponse.Messages)
                {
                    var emailInfoRequest  = service.Users.Messages.Get(userEmail, email.Id);
                    var emailInfoResponse = await emailInfoRequest.ExecuteAsync();

                    if (emailInfoResponse != null)
                    {
                        message         = new My_Message();
                        message.Id      = listMessages.Count + 1;
                        message.EmailId = email.Id;

                        foreach (var mPart in emailInfoResponse.Payload.Headers)
                        {
                            if (mPart.Name == "Date")
                            {
                                message.Date_Received = mPart.Value;
                            }
                            else if (mPart.Name == "From")
                            {
                                message.From = mPart.Value;
                                emailTo      = mPart.Value;
                            }
                            else if (mPart.Name == "Subject")
                            {
                                message.Title = mPart.Value;
                            }
                        }

                        listMessages.Add(message);
                    }
                }
            }

            ViewBag.Message = nameLabel;
            return(View("~/Views/Home/Index.cshtml", listMessages));
        }
Пример #20
0
        /// <summary>
        /// List all Messages of the user's mailbox matching the query.
        /// </summary>
        /// <param name="service">Gmail API service instance.</param>
        /// <param name="userId">User's email address. The special value "me"
        /// can be used to indicate the authenticated user.</param>
        /// <param name="query">String used to filter Messages returned.</param>
        public List <Google.Apis.Gmail.v1.Data.Message> ListMessages(string box)
        {
            using (var stream =
                       new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = "token.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                //Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Gmail API service.
            var service = new GmailService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });


            List <Google.Apis.Gmail.v1.Data.Message> result = new List <Google.Apis.Gmail.v1.Data.Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List("me");
            request.LabelIds = box;
            //request.Q = query;
            long max = 200;

            request.MaxResults = max;

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    result.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                }
                catch (Exception e)
                {
                    Debug.WriteLine(" 4 An error occurred: " + e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));

            return(result);
        }
Пример #21
0
        public static List<Message> GetMessagesList(GmailService service, string userId)
        {
            List<Message> result = new List<Message>();
            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);

            do
            {
                 ListMessagesResponse response = request.Execute();
                 result.AddRange(response.Messages);
                 request.PageToken = response.NextPageToken;
            } while (!string.IsNullOrEmpty(request.PageToken));

            return result;
        }
Пример #22
0
        /// <summary>
        /// List all Messages of the user's mailbox matching the query.
        /// </summary>
        /// <param name="service">Gmail API service instance.</param>
        /// <param name="userId">User's email address. The special value "me"
        /// can be used to indicate the authenticated user.</param>
        /// <param name="query">String used to filter Messages returned.</param>
        static List <Message> ListMessages(GmailService service, String userId, String query)
        {
            List <Message> result = new List <Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            request.Q = query;


            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();

                    string   listfile = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().Location) + ".list";
                    string[] SavedId  = { "0" };

                    if (File.Exists(listfile))
                    {
                        SavedId = File.ReadAllLines(listfile);
                    }

                    // исключаем сообщения, выгруженные ранее
                    var messages = response.Messages.Where(m => !SavedId.Contains(m.Id));

                    if (messages != null && messages.ToList().Count > 0)
                    {
                        result.AddRange(messages);
                    }

                    request.PageToken = response.NextPageToken;
                }
                catch (Exception e)
                {
                    string error = e.Message;
                    if (e.InnerException != null)
                    {
                        error = e.InnerException.Message;
                    }

                    string logfile = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().Location) + ".log";
                    WriteErrorToLog(logfile, e.ToString());

                    Console.WriteLine(e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));

            return(result);
        }
Пример #23
0
        public List <ListMessagesResponse> ListMessage(Guid idConversation)
        {
            try
            {
                var result = new List <ListMessagesResponse>();

                var dataConversation = _conversationRepository.GetInclude(x => x.Id == idConversation,
                                                                          includes:
                                                                          source =>
                                                                          source.Include(x => x.Participant)
                                                                          .ThenInclude(y => y.StatusNavigation)
                                                                          .Include(x => x.Messages)
                                                                          .ThenInclude(y => y.StatusNavigation)
                                                                          ).FirstOrDefault();

                if (dataConversation != null)
                {
                    var userSender = dataConversation.Messages
                                     .Select(x => x.Conversation.UserCreator);

                    var userReciever = dataConversation.Messages
                                       .Select(x => x.Participant.UserAccount);

                    var allUserConvensation = _userApiService.GetUsers(userSender.Union(userReciever).Distinct().ToList());

                    dataConversation.Messages.ToList().ForEach(item =>
                    {
                        var tmp = new ListMessagesResponse
                        {
                            Title              = item.Conversation.Title,
                            ContentMessage     = item.ContentMessage,
                            Sender             = allUserConvensation.Where(x => x.Id == item.Conversation.UserCreator).FirstOrDefault(),
                            Reciever           = allUserConvensation.Where(x => x.Id == item.Participant.UserAccount).FirstOrDefault(),
                            StatusConversation = item.Conversation.IsActive == true ? "Open" : "Closed",
                            StatusMessage      = item.StatusNavigation.Name,
                            Status             = item.Participant.StatusNavigation.Name
                        };

                        result.Add(tmp);
                    });
                }

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #24
0
        /*Retrieves a list of messages given the userId, query, and max results to be returned */
        public static List <MessageG> ListMessages(GmailService service, String userId, String query, int maxResults)
        {
            List <MessageG> result = new List <MessageG>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            request.MaxResults = maxResults;
            //request.Q = query; //sets Query

            try {
                ListMessagesResponse response = request.Execute();
                result.AddRange(response.Messages);
            } catch (Exception e) {
                Debug.WriteLine("An error occured: " + e.Message);
            }
            return(result);
        }
Пример #25
0
        /// <summary>
        /// This public method will retrive the number of gmails that are in the Gmail Inbox of the user email especified in this class.
        /// </summary>
        /// <returns></returns>
        public int get_number_of_Gmails()
        {
            // Get a credential using our certificate.
            ServiceAccountCredential cred = get_GmailCred();

            // instantiate a service object.
            GmailService service = new GmailService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = cred
            });

            // execute our request and store the list returned from google.
            ListMessagesResponse response = service.Users.Messages.List(ProudSourceEmail).Execute();

            // return the count of mesages in the list returned to us.
            return(response.Messages.Count);
        }
Пример #26
0
        public static List <Message> ListMessages(GmailService service, string userId, string query)
        {
            List <Message> result = new List <Message>();

            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
            request.Q = query;
            do
            {
                try {
                    ListMessagesResponse response = request.Execute();
                    result.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                } catch (Exception e) {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            }while (!string.IsNullOrEmpty(request.PageToken));
            return(result);
        }
Пример #27
0
        public Stack <string> GetMessages(string query, ref string lastId)
        {
            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(email);
            if (!String.IsNullOrEmpty(query))
            {
                request.Q = query; // "label:отчеты-aliter-axi";
            }
            request.MaxResults = Int32.MaxValue;

            Stack <string> buffer = new Stack <string>();
            string         first  = String.Empty;

            do
            {
                ListMessagesResponse response = request.Execute();
                IList <Message>      messages = response.Messages;
                if (messages == null)
                {
                    return(buffer);
                }
                request.PageToken = response.NextPageToken;
                if (!String.IsNullOrEmpty(lastId))
                {
                    foreach (Message mes in messages)
                    {
                        if (mes.Id == lastId)
                        {
                            return(buffer);
                        }
                        buffer.Push(mes.Id);
                        ++allMessages;
                    }
                }
                else
                {
                    foreach (Message mes in messages)
                    {
                        buffer.Push(mes.Id);
                        ++allMessages;
                    }
                }
            } while (!String.IsNullOrEmpty(request.PageToken));
            return(buffer);
        }
Пример #28
0
        /// <summary>
        /// List all Messages of the user's mailbox matching the query.
        /// </summary>
        /// <param name="service">Gmail API service instance.</param>
        /// <param name="userId">User's email address. The special value "me"
        /// can be used to indicate the authenticated user.</param>
        /// <param name="query">String used to filter Messages returned.</param>
        private void ListMessages(String query)
        {
            UsersResource.MessagesResource.ListRequest request = gs.Users.Messages.List("me");
            request.Q = query;

            do
            {
                try
                {
                    ListMessagesResponse response = request.Execute();
                    Messages.AddRange(response.Messages);
                    request.PageToken = response.NextPageToken;
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occurred: " + e.Message);
                }
            } while (!String.IsNullOrEmpty(request.PageToken));
        }
Пример #29
0
        /// <summary>
        /// List all Messages of the user's mailbox matching the query.
        /// </summary>
        /// <param name="query">String used to filter Messages returned. By default,
        /// returns the full email message data with body content parsed in the payload field.</param>
        private List <GmailMessage> ListMessages(string query = "")
        {
            var messages = new List <GmailMessage>();
            var request  = _gmailService.Users.Messages.List(UserId);

            request.Q = query;

            do
            {
                ListMessagesResponse response = request.Execute();
                if (response.Messages == null)
                {
                    return(null);
                }
                messages.AddRange(response.Messages);
                request.PageToken = response.NextPageToken;
            }while (!string.IsNullOrEmpty(request.PageToken));

            return(messages);
        }
Пример #30
0
        //Mail important
        public List<MesImportant> getMesImportant(UserCredential credential)
        {
            // Create Gmail API service.
            var service = new GmailService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,
            });
            //get Message id and threadid
            List<Message> resultMes = new List<Message>();
            UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List("me");
            request.LabelIds = "INBOX";
            request.LabelIds = "IMPORTANT";
            ListMessagesResponse response = request.Execute();
            resultMes.AddRange(response.Messages);
            request.PageToken = response.NextPageToken;

            //get Detail Message
            List<Message> resultDetail = new List<Message>();
            foreach (var item in resultMes)
            {
                Message mes = new Message();
                Message mesd = service.Users.Messages.Get("me", item.Id).Execute();
                mes.Snippet = mesd.Snippet;
                mes.Id = mesd.Id;
                mes.LabelIds = mesd.LabelIds;
                mes.Payload = mesd.Payload;
                resultDetail.Add(mes);
            }

            List<MesImportant> mesLHeader = new List<MesImportant>();

            foreach (Message itemmes in resultDetail)
            {
                MesImportant mes = new MesImportant();
                mes.idimportant = itemmes.Id;
                mesLHeader.Add(mes);
            }

            return mesLHeader;
        }