/// <summary> /// Modify the Labels a Message is associated with. /// </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="messageId">ID of Message to modify.</param> /// <param name="labelsToAdd">List of label ids to add.</param> /// <param name="labelsToRemove">List of label ids to remove.</param> public static Message ModifyMessage(GmailService service, String userId, String messageId, List<String> labelsToAdd, List<String> labelsToRemove) { ModifyMessageRequest mods = new ModifyMessageRequest(); mods.AddLabelIds = labelsToAdd; mods.RemoveLabelIds = labelsToRemove; try { return service.Users.Messages.Modify(mods, userId, messageId).Execute(); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); } return null; }
public void SetMessageAsRead(Message message) { BackgroundWorker bgworker = new BackgroundWorker(); bgworker.DoWork += (s, e) => { ModifyMessageRequest mods = new ModifyMessageRequest(); mods.RemoveLabelIds = new List<string>() { UnreadLabel }; var modifyReq = GmailSer.Users.Messages.Modify(mods, "me", message.Id); modifyReq.Execute(); }; bgworker.RunWorkerAsync(); }
public void MoveEmail(string messageDataId, string orderLabel, string processedLabel) { List <string> addLableIds = new List <string>(); List <string> removeLableIds = new List <string>(); //Label the email originated from removeLableIds.Add(orderLabel); //Label the email should be moved to addLableIds.Add(processedLabel); try { //Write the body of the request to add/remove label ModifyMessageRequest mods = new ModifyMessageRequest(); mods.RemoveLabelIds = removeLableIds; mods.AddLabelIds = addLableIds; //Format/execute the full request to move the email properly UsersResource.MessagesResource.ModifyRequest moveEmailRequest = Connection.Users.Messages.Modify(mods, "me", messageDataId); moveEmailRequest.Execute(); } catch (Exception e) { _log.LogInformation("Error when trying to move email to processed folder"); _log.LogInformation(e.Message); } }
public void MarkMessageAsUnread(string messageId) { var markAsReadRequest = new ModifyMessageRequest { RemoveLabelIds = new[] { "UNREAD" } }; var response = _service.Users.Messages.Modify(markAsReadRequest, "me", messageId).Execute(); }
public Message getLastMessage(DateTime dateDebut) { try { UsersResource.MessagesResource.ListRequest req = service.Users.Messages.List("me"); req.LabelIds = "UNREAD"; IList <Message> mes; if ((mes = req.Execute().Messages) == null) { return(null); } Message retour = service.Users.Messages.Get("me", mes.First().Id).Execute(); //verifie la date quand celle ci est présente long dateDebutTimeStamp = (long)(dateDebut.Date.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalMilliseconds; if (retour.InternalDate != null && retour.InternalDate < dateDebutTimeStamp) { return(null); } ModifyMessageRequest mods = new ModifyMessageRequest(); var label = new List <string>(); label.Add("UNREAD"); mods.RemoveLabelIds = label; service.Users.Messages.Modify(mods, "me", retour.Id).Execute(); return(retour); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); return(null); } }
public static void MODIFY(IList <String> LabelsToAdd, IList <String> LabelsToRemove, String MessageId) { ModifyMessageRequest modify = new ModifyMessageRequest(); modify.AddLabelIds = LabelsToAdd; modify.RemoveLabelIds = LabelsToRemove; Message message = Gmail.Connect.service.Users.Messages.Modify(modify, "me", MessageId).Execute(); }
//Removes all the labels from email with provided ID and label "UNREAD". public async Task MarkAsReadAsync(GmailService service, string emailId) { var markAsReadEmail = new ModifyMessageRequest { RemoveLabelIds = new List <string> { "UNREAD" } }; await service.Users.Messages.Modify(markAsReadEmail, gmailAccountName, emailId).ExecuteAsync(); }
public static bool MarkAsRead(string emailId) { GmailService service = InitGmailConnection(); var markAsRead = new ModifyMessageRequest { RemoveLabelIds = new[] { "UNREAD" } }; service.Users.Messages.Modify(markAsRead, "me", emailId).Execute(); return(true); }
public IActionResult UpdateContent(string id, [FromBody] string content) { var request = new ModifyMessageRequest() { MessageId = id, NewMessageContent = content }; var response = _modifyMessage.Handle(request); return(Ok()); }
public static IEnumerable <IList <Annonce> > GetMessages(GmailService service) { var list = service.Users.Messages.List("me"); list.Q = "from:[email protected] is:unread"; // List labels. IList <Message> labels = list.Execute().Messages; if (labels != null && labels.Count > 0) { foreach (var labelItem in labels) { var messageRequest = service.Users.Messages.Get("me", labelItem.Id); var emailInfoResponse = messageRequest.Execute(); var tuple = new SimpleGmailMessage(); if (emailInfoResponse != null) { // Loop through the headers and get the fields we need... foreach (var mParts in emailInfoResponse.Payload.Headers) { if (mParts.Name == "Date") { tuple.Date = DateTime.Parse(mParts.Value); } } var part = emailInfoResponse.Payload.Parts[0]; String codedBody = part.Body.Data.Replace("-", "+"); codedBody = codedBody.Replace("_", "/"); byte[] data = Convert.FromBase64String(codedBody); tuple.Message = Encoding.UTF8.GetString(data); List <Annonce> annonces = new List <Annonce>(); var result = tuple.Message.Split(new[] { '\r', '\n' }); foreach (var line in result) { if (line.Contains("Voir l'annonce")) { annonces.Add(new Annonce(tuple.Date, line.Replace(" Voir l'annonce", "").Trim())); } } yield return(annonces); ModifyMessageRequest request = new ModifyMessageRequest(); request.RemoveLabelIds = new List <string>(); request.RemoveLabelIds.Add("UNREAD"); var requeste = service.Users.Messages.Trash("me", labelItem.Id); requeste.Execute(); } } } }
Task SetRead(string messageId) { ModifyMessageRequest mods = new ModifyMessageRequest { RemoveLabelIds = new List <string> { "UNREAD" } }; //TODO: add imported tag and check return(service.Users.Messages.Modify(mods, Constants.Me, messageId).ExecuteAsync()); }
public static FormattedMessage ModifyMessageLabels(Service service, string messageId, List <string> addedLabels = null, List <string> removedLabels = null, string eTag = null) { var modifyMessageRequest = new ModifyMessageRequest { ETag = eTag, AddLabelIds = addedLabels, RemoveLabelIds = removedLabels }; var modifyRequest = service.GmailService.Users.Messages.Modify(modifyMessageRequest, "me", messageId); var messageResponse = modifyRequest.Execute(); var getRequest = service.GmailService.Users.Messages.Get("me", messageResponse.Id); messageResponse = getRequest.Execute(); return(new FormattedMessage(messageResponse)); }
public static Message ModifyMessage(GmailService service, string userId, string messageId) { var mods = new ModifyMessageRequest { RemoveLabelIds = new[] { Status } }; // заголовок, который нужно удалить try { return(service.Users.Messages.Modify(mods, userId, messageId).Execute());//удаляем пометку не прочитано } catch (Exception) { return(null); } }
/// <summary> /// Marks a message as unread by it's id /// </summary> public static Message MarkMessageRead(string id) { ModifyMessageRequest mod = new ModifyMessageRequest(); mod.RemoveLabelIds = new string[] { "UNREAD" }; try { return service.Users.Messages.Modify(mod, "me", id).Execute(); } catch (Exception e) { log.Error("Error marking message as read.", e); } return null; }
private async Task <Message> GetEmailInfoAsync(GmailService service, string emailId) { var emailInfoRequest = service.Users.Messages.Get(EmailAddress, emailId); var emailInfoResponse = await emailInfoRequest.ExecuteAsync(); var markAsReadRequest = new ModifyMessageRequest { RemoveLabelIds = new List <string> { "UNREAD" } }; await service.Users.Messages.Modify(markAsReadRequest, "me", emailInfoResponse.Id).ExecuteAsync(); return(emailInfoResponse); }
public static Google.Apis.Gmail.v1.Data.Message MoifyMessage(GmailService service, String userId, String messageId, List <String> labelsToAdd, List <String> labelsToRemove) { ModifyMessageRequest mods = new ModifyMessageRequest(); mods.RemoveLabelIds = labelsToRemove; mods.AddLabelIds = labelsToAdd; try { return(service.Users.Messages.Modify(mods, userId, messageId).Execute()); } catch (Exception e) { return(null); } }
public static Message ModifyMessage(GmailService service, String userId, String messageId, List <String> labelsToRemove) { ModifyMessageRequest mods = new ModifyMessageRequest(); mods.RemoveLabelIds = labelsToRemove; try { return(service.Users.Messages.Modify(mods, userId, messageId).Execute()); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); } return(null); }
public static void DeleteLabel(GmailService service, String userId, String labelId, String messageId) { try { //service.Users.Labels.Delete(userId, labelId).Execute(); ModifyMessageRequest mods = new ModifyMessageRequest(); mods.AddLabelIds = null; mods.RemoveLabelIds = new List <string> { "UNREAD" }; service.Users.Messages.Modify(mods, userId, messageId).Execute(); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); } }
public async Task <Message> ModifyMessageAsync(string messageId, IList <string> labelsToAdd, IList <string> labelsToRemove, string email) { var mods = new ModifyMessageRequest(); mods.AddLabelIds = labelsToAdd; mods.RemoveLabelIds = labelsToRemove; try { return(await emailService.Users.Messages.Modify(mods, email, messageId).ExecuteAsync()); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); } return(null); }
public static async Task <FormattedMessage> ModifyMessageLabelsAsync(string userId, string messageId, List <string> addedLabels = null, List <string> removedLabels = null, string eTag = null) { var service = SearchServiceByUserId(userId); var modifyMessageRequest = new ModifyMessageRequest { ETag = eTag, AddLabelIds = addedLabels, RemoveLabelIds = removedLabels }; var modifyRequest = service.GmailService.Users.Messages.Modify(modifyMessageRequest, "me", messageId); var messageResponse = await modifyRequest.ExecuteAsync(); var getRequest = service.GmailService.Users.Messages.Get("me", messageResponse.Id); messageResponse = await getRequest.ExecuteAsync(); return(new FormattedMessage(messageResponse)); }
// currently not working I get a message about permissions public static Google.Apis.Gmail.v1.Data.Message MarkMessageAsRead(string MessageID, GmailService service) { List <string> modsList = new List <string>(new string[] { "UNREAD" }); ModifyMessageRequest mods = new ModifyMessageRequest(); mods.RemoveLabelIds = modsList; try { return(service.Users.Messages.Modify(mods, "me", MessageID).Execute()); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); throw; } }
public async Task MarkMessageAsReadAsync(string id) { try { ModifyMessageRequest mods = new ModifyMessageRequest(); List <string> labelsToRemove = new List <string>() { "UNREAD" }; mods.RemoveLabelIds = labelsToRemove; var updateRequest = service.Users.Messages.Modify( mods, "me", id); await((IClientServiceRequest <GmailMessage>)updateRequest).ExecuteAsync(); } catch (GoogleApiException ex) { throw GoogleClient.HandleGoogleAPIException(ex); } }
private async Task TakeDataWithAttachment(Message responseMail) { var service = await Service(); string gmailId = responseMail.Id; string subjectOfEmail = responseMail.Payload.Headers .FirstOrDefault(s => s.Name == "Subject").Value; string dateOfEmail = responseMail.Payload.Headers .FirstOrDefault(s => s.Name == "Date").Value; string senderOfEmail = responseMail.Payload.Headers .FirstOrDefault(s => s.Name == "From").Value; var attachmentLists = responseMail.Payload.Parts.Skip(1).ToList(); if (attachmentLists.Any()) { foreach (var attachment in attachmentLists) { string fileName = attachment.Filename; double fileSize = double.Parse(attachment.Body.Size.ToString()); fileSize /= kbDivider; await this.mapper.MappGmailAttachmentIntoEmailAttachment(gmailId, fileName, fileSize); } await this.mapper.MappGmailDataIntoEmailData(gmailId, subjectOfEmail, senderOfEmail, dateOfEmail); var changeEmailStatus = new ModifyMessageRequest { RemoveLabelIds = new List <string> { "UNREAD" } }; await service.Users.Messages.Modify(changeEmailStatus, "*****@*****.**", gmailId).ExecuteAsync(); } }
private async Task TakeDataFromGmail(Message responseMail) { var service = await Service(); string gmailId = responseMail.Id; string subjectOfEmail = responseMail.Payload.Headers .FirstOrDefault(subject => subject.Name == "Subject").Value; string dateOfEmail = responseMail.Payload.Headers .FirstOrDefault(date => date.Name == "Date").Value; string senderOfEmail = responseMail.Payload.Headers .FirstOrDefault(sender => sender.Name == "From").Value; await this.mapper.MappGmailDataIntoEmailData(gmailId, subjectOfEmail, senderOfEmail, dateOfEmail); var changeEmailStatus = new ModifyMessageRequest { RemoveLabelIds = new List <string> { "UNREAD" } }; await service.Users.Messages.Modify(changeEmailStatus, "*****@*****.**", gmailId).ExecuteAsync(); }
public MockModifyRequest(IClientService service, ModifyMessageRequest modifyRequest, string userId, string id) : base(service, modifyRequest, userId, id) { }
public static void LoadLineups(NPGGFFLDataContext context, DateTime triggerDate) { Console.WriteLine("Getting service..."); var service = new GmailService(new BaseClientService.Initializer() { HttpClientInitializer = GetCredentials(), ApplicationName = ApplicationName, }); var seasonWeek = context.SeasonWeeks.Where(sw => sw.StartDtm <= triggerDate && sw.EndDtm >= triggerDate).First(); ModifyMessageRequest mods = new ModifyMessageRequest(); mods.AddLabelIds = (new string[] { }).ToList(); mods.RemoveLabelIds = (new string[] { "INBOX" }).ToList(); ListLabelsResponse response = service.Users.Labels.List(UserId).Execute(); foreach (Label label in response.Labels) { if (label.Name.ToUpper().Equals(string.Format("WEEK {0}", seasonWeek.WeekNum))) { mods.AddLabelIds.Add(label.Id); break; } } Console.WriteLine("Getting messages..."); var msgs = ListMessages(service, UserId, "label:inbox"); foreach (var msg in msgs) { Console.WriteLine("Getting message email and body..."); var message = service.Users.Messages.Get(UserId, msg.Id).Execute(); var partsBody = (message.Payload.Parts == null ? message.Payload.Body.Data : message.Payload.Parts.Where(p => p.MimeType.Equals("text/plain")).First().Body.Data); var plainTextBody = Encoding.UTF8.GetString(Convert.FromBase64String(partsBody)); var fromAddress = string.Empty; var body = string.Empty; //check for forward if (plainTextBody.Contains("Forwarded")) { var fromLine = plainTextBody.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None).Where(l => l.Contains("From:")).FirstOrDefault(); MailAddress email = new MailAddress(fromLine.Substring(fromLine.IndexOf("From:")+6)); fromAddress = email.Address.ToUpper(); bool afterEmailForwardSignature = false; foreach (var line in plainTextBody.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None)) { if (line.Contains("To:")) { afterEmailForwardSignature = true; } if (afterEmailForwardSignature) { body += line + "\r\n"; } } } else { MailAddress email = new MailAddress(message.Payload.Headers.Where(h => h.Name.Equals("From")).FirstOrDefault().Value); fromAddress = email.Address.ToUpper(); body = plainTextBody; } //Console.WriteLine("Loading Lineup.."); //if (SaveLineup(context, fromAddress, body, seasonWeek.SeasonWeekId)) //{ // //Console.WriteLine("Trash Message..."); // //service.Users.Messages.Trash(UserId, message.Id).Execute(); //} service.Users.Messages.Modify(mods, UserId, message.Id).Execute(); } Console.WriteLine("Done..."); }
public IList <MailMessage> getUnreadEmails() { // The list of messages that we're going to return IList <MailMessage> result = new List <MailMessage>(); // First we need to find the ID of the UNREAD label, which we'll use // to select all of the unread messages. GmailService service = new GmailService(new BaseClientService.Initializer() { HttpClientInitializer = getGmailCred() }); IList <Label> labels = service.Users.Labels.List(ProudSourceEmail).Execute().Labels; string unreadID = ""; foreach (Label l in labels) { if (l.Name == "UNREAD") { unreadID = l.Id; } } // This should be impossible, because UNREAD is a system label // rather than a user label if (unreadID == "") { throw new Exception(); } // And now we see what messages we have. UsersResource.MessagesResource.ListRequest listRequest = service.Users.Messages.List(ProudSourceEmail); // We specify that we only want unread messages listRequest.LabelIds = unreadID; IList <Message> messages = listRequest.Execute().Messages; // Now we get the full messages, and add them to a list foreach (Message message in messages) { // We have to get each email -- we've only listed them up until this point result.Add(getEmail(message.Id)); UsersResource.MessagesResource.GetRequest getReq = new UsersResource.MessagesResource.GetRequest(service, "me", message.Id); getReq.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Full; Message fullMessage = getReq.Execute(); MailMessage decodedMessage = convertToMailMessage(fullMessage); // Now we mark the message as read ModifyMessageRequest modMessageReq = new ModifyMessageRequest(); // Because of the request parameters, we neeed to make a list. IList <string> labelIDs = new List <string>(); labelIDs.Add(unreadID); // We tell the request what labels we want to remove modMessageReq.RemoveLabelIds = labelIDs; // And execute //service.Users.Messages.Modify(modMessageReq, ProudSourceEmail, fullMessage.Id).Execute(); result.Add(decodedMessage); } return(result); }