i try to send email using sendgrid api, here is my code:
using SendGrid;
using SendGrid.Helpers.Mail;
public static string Send(
string APIKey,
string Message,
string SenderEmail,
List<string> Receivers,
string Subject)
{
try
{
Task<string> b = Execute(APIKey,
Message,
SenderEmail,
Receivers,
Subject);
b.Wait();
if (b.Result == "True")
{
return "True";
}
else
{
return b.Result;
}
}
catch (Exception ex)
{
return ex.Message + " - " + ex.StackTrace.ToString();
}
}
private static async Task<string> Execute(
string APIKey,
string Message,
string SenderEmail,
List<string> Receivers,
string Subject)
{
try
{
var client = new SendGridClient(APIKey);
var from = new EmailAddress(SenderEmail);
var subject = Subject;
var to = new EmailAddress(Receivers[0]);
var plainTextContent = Message;
var htmlContent = "<strong>" + Message + "</strong>";
var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
MessageBox.Show("before");
var response = await client.SendEmailAsync(msg).ConfigureAwait(true);
return response.IsSuccessStatusCode + "";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + " - " + ex.StackTrace.ToString());
return ex.Message + " - " + ex.StackTrace.ToString();
}
}
but it hung forever no any response, knowing when i send via sendgrid smtp it working fine,when i set ConfigureAwait to false ,it return error:
var response = await client.SendEmailAsync(msg).ConfigureAwait(false);
here is the exception:
An error occurred while sending the request. - at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at SendGrid.Helpers.Reliability.RetryDelegatingHandler.<SendAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at SendGrid.BaseClient.<MakeRequest>d__20.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at SendGrid.BaseClient.<RequestAsync>d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at SendGrid.BaseClient.<SendEmailAsync>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at EasyWhatsappSender.Classes.EmailClasses.SenderEmailClasses.SendGridSender.<Execute>d__1.MoveNext() in E:\my projects do not delete it\EasySender\Classes\EmailClasses\SenderEmailClasses\SendGridSender.cs:line 64
i use dot net framework 4.7 and sendgrid 9.28.1, please help me to fix the problem.
since no one answer my question , i end up using normal HttpWebRequest , and it worked fine: