Is it possible to send email from my computer(localhost) using asp.net project in C#?
Finally I am going to upload my project into webserver but I want to test it before uploading.
I’ve found ready source codes and tried run them in localhost, but neither of them work succesfully.
For example this code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
namespace sendEmail
{
public partial class _default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
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("localhost");
try
{
SMTPServer.Send(mailObj);
}
catch (Exception ex)
{
Label1.Text = ex.ToString();
}
}
}
}
So how to send email using asp.net C#? Should I setup some server configurations?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Sending Email from Asp.Net:
MailMessage objMail = new MailMessage("Sending From", "Sending To","Email Subject", "Email Body");
NetworkCredential objNC = new NetworkCredential("Sender Email","Sender Password");
SmtpClient objsmtp = new SmtpClient("smtp.live.com", 587); // for hotmail
objsmtp.EnableSsl = true;
objsmtp.Credentials = objNC;
objsmtp.Send(objMail);
Method 2
if you have a gmail account you can use google smtp to send an email
smtpClient.UseDefaultCredentials = false; smtpClient.Host = "smtp.gmail.com"; smtpClient.Port = 587; smtpClient.Credentials = new NetworkCredential(username,passwordd); smtpClient.EnableSsl = true; smtpClient.Send(mailMessage);
Method 3
Your code above should work fine, but you need to add the following to your web.config (as an alternative to any code-based SMTP configuration):
<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network host="your.smtpserver.com" port="25" userName="smtpusername" password="smtppassword" />
</smtp>
</mailSettings>
</system.net>
If you don’t have access to a remote SMTP server (I use my own POP3 / SMTP email details), you can set up an SMTP server in your local IIS instance, but you may run in to issues with relaying (as most ISP consumer IP addresses are black listed).
A good alternative, if you don’t have access to an SMTP server, is to use the following settings instead of the above:
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:mail"/>
</smtp>
</mailSettings>
</system.net>
This will create a hard disk copy of the email, which is pretty handy. You will need to create the directory you specify above, otherwise you will receive an error when trying to send email.
You can configure these details in code as per other answers here (by configuring the properties on the SmtpClient object you have created), but unless you’re getting the information from a data source, or the information is dynamic, it’s superfluous coding, when .Net already does this for you.
Method 4
You can send email from ASP.NET via C# class libraries found in the System.Net.Mail namespace. take a look at the SmtpClient class which is the main class involved when sending emails.
You can find code examples in Scott Gu’s Blog or on the MSDN page of SmtpClient.
Additionally you’ll need an SMTP server running. I can recommend to use SMTP4Dev mail server that targets development and does not require any setup.
Method 5
Create class name SMTP.cs then
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;
using System.Net.Mime;
using System.Net;
/// <summary>
/// Summary description for SMTP
/// </summary>
public class SMTP
{
private SmtpClient smtp;
private static string _smtpIp;
public static string smtpIp
{
get
{
if (string.IsNullOrEmpty(_smtpIp))
_smtpIp = System.Configuration.ConfigurationManager.AppSettings["smtpIp"];
return _smtpIp;
}
}
public SMTP()
{
smtp = new SmtpClient(smtpIp);
}
public string Send(string From, string Alias, string To, string Subject, string Body, string Image)
{
try
{
MailMessage m = new MailMessage(""" + Alias + "" <" + From + ">", To);
m.Subject = Subject;
m.Priority = MailPriority.Normal;
AlternateView av1 = AlternateView.CreateAlternateViewFromString(Body, System.Text.Encoding.UTF8, MediaTypeNames.Text.Html);
if (!string.IsNullOrEmpty(Image))
{
string path = HttpContext.Current.Server.MapPath(Image);
LinkedResource logo = new LinkedResource(path, MediaTypeNames.Image.Gif);
logo.ContentId = "Logo";
av1.LinkedResources.Add(logo);
}
m.AlternateViews.Add(av1);
m.IsBodyHtml = true;
smtp.Send(m);
}
catch (Exception e)
{
return e.Message;
}
return "sucsess";
}
}
then
on aspx page
protected void lblSubmit_Click(object sender, EventArgs e)
{
//HttpContext.Current.Response.ContentType = "text/plain";
//Guid guid = Guid.NewGuid();
string EmailMessage = "<html>" +
"<head>" +
"<meta http-equiv=Content-Type content="text/html; charset=utf-8">" +
"</head>" +
"<body style="text-align:left;direction:ltr;font-family:Arial;" >" +
"<style>a{color:#0375b7;} a:hover, a:active {color: #FF7B0C;}</style>" +
"<img src="" width="190px" height= "103px"/><br/><br/>" +
"<p>Name: " + nameID.Value + ",<br/><br/>" +
"<p>Email: " + EmailID.Value + ",<br/><br/>" +
"<p>Comments: " + commentsID.Text + "<br/><br/>" +
// "Welcome to the Test local updates service!<br/>Before we can begin sending you updates, we need you to verify your address by clicking on the link below.<br/>" +
//"<a href=""></a><br/><br/>" +
//"We look forward to keeping you informed of the latest and greatest events happening in your area.<br/>" +
//"If you have any questions, bug reports, ideas, or just want to talk, please contact us at <br/><br/>" +
//"Enjoy! <br/>" + commentsID.Text + "<br/>" +
//"Test<br/><a href="">www.Test.com</a></p>" +
"</body>" +
"</html>";
lblThank.Text = "Thank you for contact us.";
// string Body = commentsID.Text;
SMTP smtp = new SMTP();
string FromEmail = System.Configuration.ConfigurationManager.AppSettings["FromEmail"];
string mailReturn = smtp.Send(EmailID.Value, "", FromEmail, "Contact Us Email", EmailMessage, string.Empty);
//HttpContext.Current.Response.Write("true");
nameID.Value = "";
EmailID.Value = "";
commentsID.Text = "";
}
Method 6
Send Email with Attachment using asp.net C#
public void Send(string from, string to, string Message, string subject, string host, int port, string password)
{
MailMessage email = new MailMessage();
email.From = new MailAddress(from);
email.Subject = subject;
email.Body = Message;
SmtpClient smtp = new SmtpClient(host, port);
smtp.UseDefaultCredentials = false;
NetworkCredential nc = new NetworkCredential(txtFrom.Text.Trim(), password);
smtp.Credentials = nc;
smtp.EnableSsl = true;
email.IsBodyHtml = true;
email.To.Add(to);
string fileName = "";
if (FileUpload1.PostedFile != null)
{
HttpPostedFile attchment = FileUpload1.PostedFile;
int FileLength = attchment.ContentLength;
if (FileLength > 0)
{
fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
FileUpload1.PostedFile.SaveAs(Path.Combine(Server.MapPath("~/EmailAttachment"), fileName));
Attachment attachment = new Attachment(Path.Combine(Server.MapPath("~/EmailAttachment"), fileName));
email.Attachments.Add(attachment);
}
}
smtp.Send(email);
}
for complete tutorial step by step (with Video) visit
http://dotnetawesome.blogspot.in/2013/09/send-email-with-attachment-using-cnet.html
Method 7
Below is the solution for you if you do not want to use gmail or hotmail:
SmtpClient smtpClient = new SmtpClient("mail.MyWebsiteDomainName.com", 25);
smtpClient.Credentials = new System.Net.NetworkCredential("<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="fa93949c95bab783ad9f9889938e9fbe95979b9394b49b979fd4999597">[email protected]</a>", "myIDPassword");
smtpClient.UseDefaultCredentials = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
MailMessage mail = new MailMessage();
//Setting From , To and CC
mail.From = new MailAddress("<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a3cacdc5cce3eedaf4c6c1d0cad7c6e7cccec2cacdedc2cec6">[email protected]</a>", "MyWeb Site");
mail.To.Add(new MailAddress("<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="731a1d151c333e0a241611001a0716371c1e121a1d3d121e16">[email protected]</a>"));
mail.CC.Add(new MailAddress("<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3974407c54585055707d795e54585055175a5654">[email protected]</a>"));
smtpClient.Send(mail);
Hope it help 🙂
Method 8
Server.mappath does not exist. There is no Server object.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0