J'essaie d'envoyer un e-mail depuis mon site Web à l'aide du protocole SMTP. Je reçois une erreur quand je le fais. Je l'ai testé localement en utilisant mon serveur smtp ISPs et cela a très bien fonctionné. Maintenant que je suis sur le web, ce n'est pas le cas. Je ne suis pas sûr que l'erreur que je reçois est autre alors cela ne fonctionne pas et j'obtiens le message d'erreur que j'ai programmé dans le site. Vous pouvez voir mon code ci-dessous. J'ai essayé deux ou trois serveurs différents sans aucune chance. Je sais que le login/mot de passe est bon car je l'ai vérifié. Mon hébergeur est winhost mais mon email passe par gmail. Donc, j'ai mis en place un compte sur godaddy qui permet 250 relais.Erreur lors de l'envoi d'un e-mail via SMTP sur ASP.NET MVC
public class EmailMeController : Controller
{
//
// GET: /EmailMe/
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(EmailModel emailModel)
{
if (ModelState.IsValid)
{
bool isOk = false;
try
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("[email protected]", "Website Contact Form");
msg.To.Add("[email protected]");
msg.Subject = emailModel.Subject;
string body = "Name: " + emailModel.Name + "\n"
+ "Email: " + emailModel.EmailAddress + "\n"
+ "Website: " + emailModel.WebSite + "\n"
+ "Phone: " + emailModel.Phone + "\n\n"
+ emailModel.Message;
msg.Body = body;
msg.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient("smtp.secureserver.net", 80);
NetworkCredential Credentials = new NetworkCredential("[email protected]", "password");
smtp.Credentials = Credentials;
smtp.Send(msg);
msg.Dispose();
isOk = true;
MessageModel rcpt = new MessageModel();
rcpt.Title = "Thank You";
rcpt.Content = "Your email has been sent.";
return View("Message", rcpt);
}
catch (Exception ex)
{
}
// If we are here...something kicked us into the exception.
//
MessageModel err = new MessageModel();
err.Title = "Email Error";
err.Content = "The website is having an issue with sending email at this time. Sorry for the inconvenience. My email address is provided on the about page.";
return View("Message", err);
}
else
{
return View();
}
}
}
Aucun message d'erreur probable signifie aucune réponse. Débarrassez-vous de cette "capture" vide maintenant et remplacez-la par au moins une sorte de journalisation; De cette façon, vous saurez quelle était l'erreur. – Aaronaught
Je ne sais pas comment enregistrer l'erreur. Aussi, je l'ai testé encore ce matin en utilisant le même code à la fois localement sur Cassini et à distance sur le serveur live. cela fonctionne localement, mais ne fonctionne pas à distance. Rien ne change, y compris les informations SMTP. –
J'ai été en mesure d'obtenir l'erreur, il était assez long (plus long alors ce qui rentrerait dans la boîte, donc je l'ai copié/collé ici: drop.io/xsvslel/asset/error-log –