В рамках процесса заказа я хочу отправить электронное письмо с подтверждением заказа.Для этого я использую SendGrid.Теперь все работало нормально, пока я не решил разработать шаблон SendGrid и заполнить его фактическими данными о заказе (например, позициями и т. Д.).
В результате я получил какой-то фрагмент кодаэто отсылает часть информации в шаблон, и электронное письмо отправляется (очевидно, с неверными данными), но я пытаюсь подчеркнуть, что я заставил его работать с точки зрения конфигурации.
Тем не менее, теперь, когда я, наконец, понял, как выяснить, как получить правильные данные в шаблон (код ниже), электронное письмо больше не отправляется (статус 3131).Любые идеи, где я могу разрушить вещь?
var apiKey = ConfigurationManager.AppSettings["SGAPIkey"];
var client = new SendGridClient(apiKey);
var msg = new SendGridMessage();
msg.SetFrom(new EmailAddress("orders@freshNclean.ch", "freshNclean"));
msg.AddTo(new EmailAddress(UserManager.FindById(userID).Email));
msg.SetTemplateId("d-9f76f1ec08964219954067b31b3a97ad");
var orderedLineItems = DATADB.LineItemList.Where(x => x.OrderNumber == orderID).ToList();
var allLineItems = new List<orderConfirmation>();
string prd;
int qty;
decimal prc;
foreach(var itm in orderedLineItems)
{
if (itm.SubscriptionQuantity == 0)
{
prd = itm.ProductName;
qty = itm.SingleOrderQuantity;
prc = itm.SingleOrderPrice;
}
else
{
prd = itm.ProductName;
qty = itm.SubscriptionQuantity;
prc = itm.SubscriptionPrice;
}
var bdy = new orderConfirmation
{
receipt = true,
lineItem = new lineItem
{
product = prd,
quantity = qty,
price =
},
total = "CHF " + order.OrderAmount.ToString(),
company = DATADB.ShippingAddressList.Where(x => x.UserID == userID).Where(x => x.IsDefaultShippingAddress == true).Select(x => x.ShippingAddressCompanyName).First(),
name = UserManager.FindById(userID).FirstName.ToString() + " " + UserManager.FindById(userID).LastName.ToString(),
address01 = DATADB.ShippingAddressList.Where(x => x.UserID == userID).Where(x => x.IsDefaultShippingAddress == true).Select(x => x.ShippingAddressStreet).First() + " " + DATADB.ShippingAddressList.Where(x => x.UserID == userID).Where(x => x.IsDefaultShippingAddress == true).Select(x => x.ShippingAddressNumber).First(),
address02 = DATADB.ShippingAddressList.Where(x => x.UserID == userID).Where(x => x.IsDefaultShippingAddress == true).Select(x => x.ShippingAddressAdditional).First(),
zip = DATADB.ShippingAddressList.Where(x => x.UserID == userID).Where(x => x.IsDefaultShippingAddress == true).Select(x => x.ShippingAddressZIP).First(),
city = DATADB.ShippingAddressList.Where(x => x.UserID == userID).Where(x => x.IsDefaultShippingAddress == true).Select(x => x.ShippingAddressCity).First(),
state = DATADB.ShippingAddressList.Where(x => x.UserID == userID).Where(x => x.IsDefaultShippingAddress == true).Select(x => x.ShippingAddressState).First(),
instructions = DATADB.ShippingAddressList.Where(x => x.UserID == userID).Where(x => x.IsDefaultShippingAddress == true).Select(x => x.ShippingInstructions).First()
};
allLineItems.Add(bdy);
};
msg.SetTemplateData(allLineItems);
var response = await client.SendEmailAsync(msg);