2014-12-12 3 views
1

Я разрабатываю интернет-приложение MVC 5 и желаю отправить электронное письмо с помощью службы SendGrid, когда мое приложение развернуто до Azure.Identity 2.1 почтовый сервис

Я нашел некоторые ссылки на ресурсы, но каждая реализация кода, которую я использую, отправляет электронное письмо очень медленно. Я решил использовать код по этой ссылке: http://www.codeproject.com/Articles/762427/ASP-NET-Identity-Setting-Up-Account-Validation-and

Вот мой код:

public class EmailService : IIdentityMessageService 
{ 
    public Task SendAsync(IdentityMessage message) 
    { 
     // Credentials: 
     var sendGridUserName = "myusername"; 
     var sentFrom = "[email protected]"; 
     var sendGridPassword = "mypassword"; 

     // Configure the client: 
     var client = 
      new System.Net.Mail.SmtpClient("smtp.sendgrid.net", Convert.ToInt32(587)); 

     client.Port = 587; 
     client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
     client.UseDefaultCredentials = false; 

     // Creatte the credentials: 
     System.Net.NetworkCredential credentials = 
      new System.Net.NetworkCredential(sendGridUserName, sendGridPassword); 

     client.EnableSsl = true; 
     client.Credentials = credentials; 

     // Create the message: 
     var mail = 
      new System.Net.Mail.MailMessage(sentFrom, message.Destination); 

     mail.Subject = message.Subject; 
     mail.Body = message.Body; 

     // Send: 
     return client.SendMailAsync(mail); 
    } 
} 

Электронная почта занимает много минут, чтобы отправить. Почему это? Как быстро следует отправлять электронную почту в среднем, и мне нужно каким-то образом оптимизировать мой код? Кроме того, вместо использования SendGrid, есть ли лучший ресурс для использования, который я должен использовать?

Заранее спасибо.

+0

Могу ли я спросить, если вы столкнулись с ошибкой «Попытка получить доступ к сокете способом, запрещенным его правами доступа», и как вы его смягчили? –

ответ

2

Где-то в документации по Sendgrid (не удалось найти ее сейчас, к сожалению). Я видел рекомендацию, что если вы используете свои конечные точки REST API вместо SMPT, электронные письма будут быстрее. И Sendgrid предоставляет библиотеку C# для использования своего API. Попробуй.

+0

Хм, API REST будет быстрее, но не быстрее. Однако есть другие причины использовать REST API. – bvanvugt

0

Возможно, SendGrid откладывает или задерживает ваши отправки. Есть ли какая-либо операция отсрочки или задержки на панели управления SendGrid?

Вы также можете подключиться к SendGrid Webhook Events, чтобы узнать, что именно происходит с вашей электронной почтой.

Смежные вопросы