SendGrid Tutorial was in Bad Request
Ich entschuldige mich, wenn dies ist ein dupe Frage, aber ich habe nicht gefunden, einen soliden Informationen über dieses Thema entweder auf dieser Website oder auf andere.
Mit, dass gesagt wird, ich arbeite auf einem MVC 5-Webanwendung. Ich bin nach dieses tutorial mehr auf ASP.net.
public async Task SendAsync(IdentityMessage message)
{
await configSendGridasync(message);
}
private async Task configSendGridasync(IdentityMessage message)
{
var myMessage = new SendGridMessage();
myMessage.AddTo(message.Destination);
myMessage.From = new System.Net.Mail.MailAddress(
"[email protected]", "Your Contractor Connection");
myMessage.Subject = message.Subject;
myMessage.Text = message.Body;
myMessage.Html = message.Body;
var credentials = new NetworkCredential(
Properties.Resources.SendGridUser,
Properties.Resources.SendGridPassword,
Properties.Resources.SendGridURL //necessary?
);
//Create a Web transport for sending email.
var transportWeb = new Web(credentials);
//Send the email.
if (transportWeb != null)
{
await transportWeb.DeliverAsync(myMessage);
}
else
{
Trace.TraceError("Failed to create Web transport.");
await Task.FromResult(0);
}
}
Jedes mal wird es um die await transportWeb.SendAsync(myMessage)
Zeile in der oben genannten Methode, kann dieser Fehler zeigt sich in den browser:
Server Error in '/' Application.
Bad Request
Beschreibung: Eine nicht behandelte Ausnahme ist aufgetreten während der Ausführung der aktuellen Webanforderung. Bitte überprüfen Sie die Stapelüberwachung für weitere Informationen über den Fehler und wo Sie Ihren Ursprung in den code.
Ausnahmedetails: System.Ausnahme: Bad Request
Line 54: if (transportWeb != null)
Line 55: {
Line 56: await transportWeb.DeliverAsync(myMessage);
Line 57: }
Line 58: else
Line 59: {
Line 60: Trace.TraceError("Failed to create Web transport.");
Line 61: await Task.FromResult(0);
Line 62: }
Ich bei der Anmeldung für ein kostenloses Konto über bei https://sendgrid.com/, mit dem "sorglos-Paket Google", geben mir die 25.000 credits monatlich. Die Konto bereitgestellt wurde.
Ich habe versucht, ein paar Dinge so weit darunter: die Deaktivierung der SSL, putting username/Passwort direkt im code statt ziehen Sie aus der Resources.resx
- Datei, unter Angabe der SMTP-server innerhalb der NetworkCredential
Objekt, und auch versucht, die änderung DeliverAsync(...)
zu Deliver()
.
Versuchte ich ausdrücklich die Einstellung der subject
anstatt message.Subject
als dieser Beitrag vorgeschlagen. Ich habe auch versucht HttpUtility.UrlEncode
auf die callbackUrl
erzeugt in der Account/Register
Methode als die hier vorgeschlagen werden. Gleiche Ergebnisse, leider.
Hat jemand zufällig Einblick in das, was verursachen könnte, dass diese nicht richtig funktionieren?
- github.com/sendgrid/sendgrid-csharp
- Ich verwendet NuGet innerhalb VS2013 Community Edition erhalten Sie die neuesten SendGrid. Ist die, die Sie im Zusammenhang mit anderen aus dem Paket habe ich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte es ein problem mit Ihren Anmeldeinformationen an.
Wenn Sie sich angemeldet haben, mit SendGrid über die Windows Azure, dann müssen Sie Folgendes tun:
Azure Portal
Marketplace
SendGrid
AnwendungConnection Info
Username
undPassword
aufgeführt.Ich war zunächst unter dem Eindruck, dass ich mein Azure-Konto-Passwort, bis ich das gefunden. Hoffe das behebt dein problem, wie es für mich getan hat.
Landete ich mit den built-in
SmtpClient
damit dies funktioniert. Hier ist der code, den ich verwende:Obwohl es nicht SendGrid die C# - API, die Nachrichten immer noch zeigen, bis auf meine SendGrid dashboard.
Überprüfen Sie, dass Sie den richtigen "Benutzernamen" als "Mailkonto" - Einstellung.
Das sollte Ihr sendgrid Benutzernamen, NICHT die E-Mail-Adresse des Kontos, das Sie senden möchten, aus.
Ich habe den gleichen Fehler. Alles was ich tun musste, war die Kopie der appsettings in der Web config(siehe unten) und fügen Sie es in die ANDERE webconfig Datei (es gibt 2 davon in asp.net Projekt).
Die ich erstellt hatte, eine SendGrid-Konto via Azure
Ich reparierte diese, indem Sie diese Werte in meinem Web.Config-Datei:
meiner azure-Benutzernamen und Passwort. den Benutzernamen habe ich gefunden, der aus dem Azure-Dashboard, ich navigiert SendGrid-Konten >> [Geklickt die Ressource, die ich Erschaffen hatte] >> - Konfigurationen. Das Passwort war die gleiche, die ich einrichten der Azure-Konto mit.
Ich auch konfrontiert dieses Problem. gelöst indem textcontent und htmlcontent. Bevor ich das senden leerer string.jetzt seine Arbeit
code unten
Ich hatte das gleiche problem, passiert zu haben, falsch den Namen der config-Wert für den mailAccount (put mainAccount statt der mailAccount).
Den config-Wert wurde wieder als null aber die Ausnahme nicht ausgelöst, und die leeren Benutzernamen zugewiesen wurde, statt. Im Grunde, legen Sie den Haltepunkt in der Zeile "Web-transportWeb = new Web(credential);" und sehen, was Benutzername/Passwort, das Sie tatsächlich vorbei, die in Anmeldeinformationen, und finden Sie auch die nevada_scout Antwort.
Das Unternehmen die domain, die Sie registriert haben in SendGrid sollte verwendet werden, um rufen Sie die API-Mailadresse. Also, wenn Ihr Unternehmen web-site registrieren Sie sich in SendGrid ist
www.###.com
Sie verwenden sollten: