简体   繁体   中英

Sending email in asp.net via local host server

Is there any example that can explain me to send email from my localhost server ? I've written this example but it doesn't work the error is "Failure sending mail".

 SmtpClient smtpClient = new SmtpClient();
        smtpClient.Host = "localhost";
        smtpClient.Port = 25;
        smtpClient.EnableSsl = false;
        smtpClient.Credentials = new NetworkCredential("mostang1970@yahoo.com", "secret");
        smtpClient.Send("mostang1970@yahoo.com", "hadinematipartow@yahoo.com", "Let’s eat lunch!", "Lunch at the Steak House?");//here is the error

And what should i do in web.config?

Here ya go :) localhost-with-aspnet-without-smtp-server

Let me please know if it works for you the way you need it to.


Link above doesn't work, so I'll improve the answer.

For testing purposes we can use localhost like this: How to Test Email Without Configure SMTP in ASP.NET

In case the link goes down again, basically we have to modify web.config like this:

  <system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="C:\Mails\"/>
      </smtp>
    </mailSettings>
  </system.net>

and C# code

  MailMessage mailMessage = new MailMessage();
  MailAddress fromAddress = new MailAddress("mail@mail.com");
  mailMessage.From = fromAddress;
  mailMessage.To.Add("mail@mail.com");
  mailMessage.Body = "This is Testing Email Without Configured SMTP Server";
  mailMessage.IsBodyHtml = true;
  mailMessage.Subject = " Testing Email";
  SmtpClient smtpClient = new SmtpClient();
  smtpClient.Host = "localhost";
  smtpClient.Send(mailMessage);

This will output a file to our desired directory.

You need to specify the settings for your SMTP server in web.config. There are several example online (eg this )

<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network" from="test@mydomain.com">
            <network host="smtp.mail.com" userName="name@mydomain.com" password="pwd" port="25"/>
        </smtp>
    </mailSettings>
</system.net>

Then you can simply use the SmtpClient class to send:

SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;

MailMessage msg = new MailMessage();
msg.To.Add("recipient@email.com");
msg.Subject = "test";
msg.Body = "test body";

smtpClient.Send(msg);

here is the sample:

public static void SendMailMessage(string from, string to, string bcc, string cc, string subject, string body)
{
    // Instantiate a new instance of MailMessage
    MailMessage mMailMessage = new MailMessage();

    // Set the sender address of the mail message
    mMailMessage.From = new MailAddress(from);
    // Set the recepient address of the mail message
    mMailMessage.To.Add(new MailAddress(to));

    // Check if the bcc value is null or an empty string
    if ((bcc != null) && (bcc != string.Empty))
    {
        // Set the Bcc address of the mail message
        mMailMessage.Bcc.Add(new MailAddress(bcc));
    }      // Check if the cc value is null or an empty value
    if ((cc != null) && (cc != string.Empty))
    {
        // Set the CC address of the mail message
        mMailMessage.CC.Add(new MailAddress(cc));
    }       // Set the subject of the mail message
    mMailMessage.Subject = subject;
    // Set the body of the mail message
    mMailMessage.Body = body;

    // Set the format of the mail message body as HTML
    mMailMessage.IsBodyHtml = true;
    // Set the priority of the mail message to normal
    mMailMessage.Priority = MailPriority.Normal;

    // Instantiate a new instance of SmtpClient
    SmtpClient mSmtpClient = new SmtpClient();
    // Send the mail message
    mSmtpClient.Send(mMailMessage);
}

And call the function:

SendMailMessage("fromAddress@yourdomain.com", "toAddress@yourdomain.com", "bccAddress@yourdomain.com", "ccAddress@yourdomain.com", "Sample Subject", "Sample body of text for mail message")
 bool ret = true;

            try
            {
                string _smtpServer = ConfigurationSettings.AppSettings["appEmailHost"];

                Web.Mail.Mail mail = new Web.Mail.Mail(_smtpServer,         
        System.Web.Mail.MailFormat.Html, System.Web.Mail.MailPriority.Normal);
                mail._From = test@test.com;
                mail._To = Test2@test.com;
                mail._Subject = subject;

                mail._Body = body;
                mail.SendMail();
                ret = true;
            }
            catch(Exception exp)
            {
                _GravaErro(exp);
                ret = false;
            }

            return ret;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM