Как мне использовать SPEmailEventReceiver для анализа данных из электронной почты

#c# #sharepoint #sharepoint-2010

#c# #sharepoint #sharepoint-2010

Вопрос:

У меня есть библиотека документов с поддержкой электронной почты, которая получает электронные письма с прикрепленными документами. Я хочу группировать и фильтровать эти электронные письма и вложения, используя доменное имя, с которого они пришли. Это означает, что мне нужно удалить доменное имя из адреса электронной почты отправителя, т.Е. paul.shadwell@techvee.com возвращает techvee.com.

Я также хотел бы проанализировать информацию из подписи электронного письма, чтобы создать запись контакта в отдельном списке контактов.

Я был бы очень благодарен за некоторую помощь и указания по этому поводу.

С наилучшими пожеланиями

Пол Джей Шедуэлл

Ответ №1:

Вы можете реализовать свой собственный SPEmailEventReceiver.

 public class MailEvents : SPEmailEventReceiver
  

Переопределить событие EmailReceived

 public override void EmailReceived(SPList list, Microsoft.SharePoint.Utilities.SPEmailMessage emailMessage, string receiverData)
  

Что бы я хотел сделать, так это написать логику для обработки ваших писем в этом обработчике событий и позволить ему перемещать почту в другую библиотеку документов. Итак, в принципе, у вас будет библиотека входящей электронной почты, которая будет получать все электронные письма. Подключив к нему обработчик событий, вы можете выполнить свою бизнес-логику, скопировав / переместив почту в другую библиотеку документов по вашему выбору.

Не забудьте прикрепить к owstimer.exe для отладки этого класса!

Maarten

Комментарии:

1. Спасибо Мартен, это код, который у меня есть на данный момент, но, похоже, ничего не происходит. Я подключил службу owstimer.

2. пространство имен анализирует электронные письма. EventReceiver1 { открытый класс EventReceiver1: SPEmailEventReceiver { публичное переопределение аннулирует полученное электронное письмо (разделяющий oList, SPEmailMessage oMessage, String strReceiverData) { string myText = «- Привет, здесь был Пол»; разделяющий oListItem = oList. Items.Add(); oListItem[«Title»] = строка. Объединение (исключение сообщения. Заголовки [«Тема»], myText); oListItem [«Тело»] = Пропущенное сообщение. HTMLBody; oListItem[«Domain»] = Отсутствующее сообщение. EnvelopeSender; оЛистИтем. Update(); } } }

3. Вы прикрепили обработчик событий к списку? Синтаксический анализ сообщений электронной почты. EventReceiver1?