5. WebHookの処理
[HttpPost]
public asyncTask<HttpResponseMessage> Post()
{
var root = System.IO.Path.GetTempPath();
var provider = new MultipartFormDataStreamProvider(root);
try
{
await Request.Content.ReadAsMultipartAsync(provider);
SaveMail(provider);
…
}
private void SaveMail(Collection<MultipartFileData> files, Email email)
{
var siteUrl = ConfigurationManager.AppSettings.Get("ReciveMail.SiteUrl");
var user = ConfigurationManager.AppSettings.Get("ReciveMail.AccessUser");
var pass =ConfigurationManager.AppSettings.Get("ReciveMail.AccessPassword");
var settings = (MailSettings)HttpContext.Current.Application["MailSettings"];
using (var ctx =CreateContext(siteUrl, user, pass))
{
var envelope = JsonConvert.DeserializeObject<dynamic>(email.Envelope);
foreach (string toUser in envelope.to)
{
var list = ctx.Web.Lists.GetByTitle(rule.ListTile);
if (list == null) continue;
var charsetsObj = JsonConvert.DeserializeObject<dynamic>(email.Charsets);
var itemCreateInfo = new ListItemCreationInformation();
var item = list.AddItem(itemCreateInfo);
item["Title"] = ConvertToUtf8(email.Subject, Encoding.GetEncoding((string)charsetsObj.subject));
今回はほぼこの処理がすべて。
SendGridで受けたメールからタイトル
や本文・添付を取り出してリストに追
加する
SendGridの処理は独特だがSharePoint
のリスト処理は一般的な範囲