Je suis très nouveau dans la zone ASP.NET C #. Je prévois d'envoyer un courrier via ASP.NET C # et voici l' adresse SMTP de mon FAI :
smtp-proxy.tm.net.my
Voici ce que j'ai essayé de faire, mais j'ai échoué.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="SendMail" %>
<html>
<head id="Head1" runat="server"><title>Email Test Page</title></head>
<body>
<form id="form1" runat="server">
Message to: <asp:TextBox ID="txtTo" runat="server" /><br>
Message from: <asp:TextBox ID="txtFrom" runat="server" /><br>
Subject: <asp:TextBox ID="txtSubject" runat="server" /><br>
Message Body:<br>
<asp:TextBox ID="txtBody" runat="server" Height="171px" TextMode="MultiLine" Width="270px" /><br>
<asp:Button ID="Btn_SendMail" runat="server" onclick="Btn_SendMail_Click" Text="Send Email" /><br>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
Et ci-dessous est mon code derrière :
using System;
using System.Web.UI.WebControls;
using System.Net.Mail;
public partial class SendMail : System.Web.UI.Page
{
protected void Btn_SendMail_Click(object sender, EventArgs e)
{
MailMessage mailObj = new MailMessage(
txtFrom.Text, txtTo.Text, txtSubject.Text, txtBody.Text);
SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
try
{
SMTPServer.Send(mailObj);
}
catch (Exception ex)
{
Label1.Text = ex.ToString();
}
}
}
PS: Je suis désolé de ne pas pouvoir comprendre le concept SMTP récepteur / expéditeur, et j'essaie donc de comprendre tout le concept à partir d'ici.
Réponses:
Passez simplement par le code ci-dessous.
SmtpClient smtpClient = new SmtpClient("mail.MyWebsiteDomainName.com", 25); smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "myIDPassword"); // smtpClient.UseDefaultCredentials = true; // uncomment if you don't want to use the network credentials smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); //Setting From , To and CC mail.From = new MailAddress("info@MyWebsiteDomainName", "MyWeb Site"); mail.To.Add(new MailAddress("info@MyWebsiteDomainName")); mail.CC.Add(new MailAddress("[email protected]")); smtpClient.Send(mail);
la source
MailMessage
etSmtpClient
implémententIDisposable
et doivent être utilisés dans uneusing
déclaration (ou éliminés d'une autre manière)Essayez d'utiliser ce code à la place. Remarque: dans «de l'adresse», indiquez votre adresse e-mail et votre mot de passe corrects.
protected void btn_send_Click(object sender, EventArgs e) { System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); mail.To.Add("to gmail address"); mail.From = new MailAddress("from gmail address", "Email head", System.Text.Encoding.UTF8); mail.Subject = "This mail is send from asp.net application"; mail.SubjectEncoding = System.Text.Encoding.UTF8; mail.Body = "This is Email Body Text"; mail.BodyEncoding = System.Text.Encoding.UTF8; mail.IsBodyHtml = true; mail.Priority = MailPriority.High; SmtpClient client = new SmtpClient(); client.Credentials = new System.Net.NetworkCredential("from gmail address", "your gmail account password"); client.Port = 587; client.Host = "smtp.gmail.com"; client.EnableSsl = true; try { client.Send(mail); Page.RegisterStartupScript("UserMsg", "<script>alert('Successfully Send...');if(alert){ window.location='SendMail.aspx';}</script>"); } catch (Exception ex) { Exception ex2 = ex; string errorMessage = string.Empty; while (ex2 != null) { errorMessage += ex2.ToString(); ex2 = ex2.InnerException; } Page.RegisterStartupScript("UserMsg", "<script>alert('Sending Failed...');if(alert){ window.location='SendMail.aspx';}</script>"); } }
la source
Vous pouvez essayer ceci en utilisant hotmail comme ceci: -
MailMessage o = new MailMessage("From", "To","Subject", "Body"); NetworkCredential netCred= new NetworkCredential("Sender Email","Sender Password"); SmtpClient smtpobj= new SmtpClient("smtp.live.com", 587); smtpobj.EnableSsl = true; smtpobj.Credentials = netCred; smtpobj.Send(o);
la source
Essayez ce qui suit:
try { var fromEmailAddress = ConfigurationManager.AppSettings["FromEmailAddress"].ToString(); var fromEmailDisplayName = ConfigurationManager.AppSettings["FromEmailDisplayName"].ToString(); var fromEmailPassword = ConfigurationManager.AppSettings["FromEmailPassword"].ToString(); var smtpHost = ConfigurationManager.AppSettings["SMTPHost"].ToString(); var smtpPort = ConfigurationManager.AppSettings["SMTPPort"].ToString(); string body = "Your registration has been done successfully. Thank you."; MailMessage message = new MailMessage(new MailAddress(fromEmailAddress, fromEmailDisplayName), new MailAddress(ud.LoginId, ud.FullName)); message.Subject = "Thank You For Your Registration"; message.IsBodyHtml = true; message.Body = body; var client = new SmtpClient(); client.Credentials = new NetworkCredential(fromEmailAddress, fromEmailPassword); client.Host = smtpHost; client.EnableSsl = true; client.Port = !string.IsNullOrEmpty(smtpPort) ? Convert.ToInt32(smtpPort) : 0; client.Send(message); } catch (Exception ex) { throw (new Exception("Mail send failed to loginId " + ud.LoginId + ", though registration done.")); }
Et puis dans votre web.config, ajoutez ce qui suit entre
<!--Email Config--> <add key="FromEmailAddress" value="sender emailaddress"/> <add key="FromEmailDisplayName" value="Display Name"/> <add key="FromEmailPassword" value="sender Password"/> <add key="SMTPHost" value="smtp-proxy.tm.net.my"/> <add key="SMTPPort" value="smptp Port"/>
la source
Vous pouvez essayer MailKit MailKit est une bibliothèque client de messagerie .NET multiplateforme Open Source basée sur MimeKit et optimisée pour les appareils mobiles. Vous pouvez l'utiliser facilement dans votre application.Vous pouvez télécharger ici .
MimeMessage mailMessage = new MimeMessage(); mailMessage.From.Add(new MailboxAddress(fromName, from@address.com)); mailMessage.Sender = new MailboxAddress(senderName, [email protected]); mailMessage.To.Add(new MailboxAddress(emailid, emailid)); mailMessage.Subject = subject; mailMessage.ReplyTo.Add(new MailboxAddress(replyToAddress)); mailMessage.Subject = subject; var builder = new BodyBuilder(); builder.TextBody = "Hello There"; try { using (var smtpClient = new SmtpClient()) { smtpClient.Connect("HostName", "Port", MailKit.Security.SecureSocketOptions.None); smtpClient.Authenticate("[email protected]", "password"); smtpClient.Send(mailMessage); Console.WriteLine("Success"); } } catch (SmtpCommandException ex) { Console.WriteLine(ex.ToString()); } catch (Exception ex) { Console.WriteLine(ex.ToString()); }
la source
Vérifiez ça ... ça marche
http://www.aspnettutorials.com/tutorials/email/email-aspnet2-csharp/
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Net.Mail; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnSubmit_Click(object sender, EventArgs e) { try { MailMessage message = new MailMessage(txtFrom.Text, txtTo.Text, txtSubject.Text, txtBody.Text); SmtpClient emailClient = new SmtpClient(txtSMTPServer.Text); emailClient.Send(message); litStatus.Text = "Message Sent"; } catch (Exception ex) { litStatus.Text=ex.ToString(); } } }
la source
Si vous souhaitez générer les corps de vos e-mails dans Razor , vous pouvez utiliser Mailzory . Vous pouvez également télécharger le package nuget à partir d' ici .
// template path var viewPath = Path.Combine("Views/Emails", "hello.cshtml"); // read the content of template and pass it to the Email constructor var template = File.ReadAllText(viewPath); var email = new Email(template); // set ViewBag properties email.ViewBag.Name = "Johnny"; email.ViewBag.Content = "Mailzory Is Funny"; // send email var task = email.SendAsync("[email protected]", "subject"); task.Wait()
la source
Selon ce :
Référence: https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=netframework-4.8
Il est préférable d'utiliser
MailKit
pour envoyer des e-mails:var message = new MimeMessage (); message.From.Add (new MailboxAddress ("Joey Tribbiani", "[email protected]")); message.To.Add (new MailboxAddress ("Mrs. Chanandler Bong", "[email protected]")); message.Subject = "How you doin'?"; message.Body = new TextPart ("plain") { Text = @"Hey Chandler, I just wanted to let you know that Monica and I were going to go play some paintball, you in? -- Joey" }; using (var client = new SmtpClient ()) { // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS) client.ServerCertificateValidationCallback = (s,c,h,e) => true; client.Connect ("smtp.friends.com", 587, false); // Note: only needed if the SMTP server requires authentication client.Authenticate ("joey", "password"); client.Send (message); client.Disconnect (true); }
la source
MailMessage mm = new MailMessage(txtEmail.Text, txtTo.Text); mm.Subject = txtSubject.Text; mm.Body = txtBody.Text; if (fuAttachment.HasFile)//file upload select or not { string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName); mm.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName)); } mm.IsBodyHtml = false; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.EnableSsl = true; NetworkCredential NetworkCred = new NetworkCredential(txtEmail.Text, txtPassword.Text); smtp.UseDefaultCredentials = true; smtp.Credentials = NetworkCred; smtp.Port = 587; smtp.Send(mm); Response.write("Send Mail");
Voir la vidéo: https://www.youtube.com/watch?v=bUUNv-19QAI
la source
C'est le script le plus simple à tester.
<%@ Import Namespace="System.Net" %> <%@ Import Namespace="System.Net.Mail" %> <script language="C#" runat="server"> protected void Page_Load(object sender, EventArgs e) { //create the mail message MailMessage mail = new MailMessage(); //set the addresses mail.From = new MailAddress("From email account"); mail.To.Add("To email account"); //set the content mail.Subject = "This is a test email from C# script"; mail.Body = "This is a test email from C# script"; //send the message SmtpClient smtp = new SmtpClient("mail.domainname.com"); NetworkCredential Credentials = new NetworkCredential("to email account", "Password"); smtp.Credentials = Credentials; smtp.Send(mail); lblMessage.Text = "Mail Sent"; } </script> <html> <body> <form runat="server"> <asp:Label id="lblMessage" runat="server"></asp:Label> </form> </body>
la source