• 0

[C# .Net 2] How do I send emails from my C# code?


Question

Ive written a web app in ASP.NET, C#, .NET 2.0 with a SQL Server 2000 db. Ive got this installed on a Windows Server 2003 box.

Ive never setup or sent email from .Net before. Could someone advise how i set it up on the Windows 2003 box, whether i need to setup anything in .Net framework configs and what namespaces and methods i need to use in C# to get this working.

Thanks!

15 answers to this question

Recommended Posts

  • 0

there are a number of ways you could do this..

however when i do it.. i use a class called mailmessage

which i think off the top of my head is system.web.mail

ill check

so, create a new object of mailmessage and then assign a to address and from address etc

  • 0

MailMessage mmEnquiry = new MailMessage();

SmtpClient smtpClient = new SmtpClient();

MailAddress fromAddress = new MailAddress(ConfigurationManager.AppSettings["SUPPORT_EMAIL"],

ConfigurationManager.AppSettings["SITE_NAME"]);

mmEnquiry.To.Add(ConfigurationManager.AppSettings["SUPPORT_EMAIL"]);

mmEnquiry.Subject = "Website Error has occurred";

mmEnquiry.From = fromAddress;

mmEnquiry.Body = "Message goes here";

smtpClient.Host = ConfigurationManager.AppSettings["SMTP_IP"];

smtpClient.Send(mmEnquiry);

  • 0
  whoreman said:

MailMessage mmEnquiry = new MailMessage();

SmtpClient smtpClient = new SmtpClient();

MailAddress fromAddress = new MailAddress(ConfigurationManager.AppSettings["SUPPORT_EMAIL"],

ConfigurationManager.AppSettings["SITE_NAME"]);

mmEnquiry.To.Add(ConfigurationManager.AppSettings["SUPPORT_EMAIL"]);

mmEnquiry.Subject = "Website Error has occurred";

mmEnquiry.From = fromAddress;

mmEnquiry.Body = "Message goes here";

smtpClient.Host = ConfigurationManager.AppSettings["SMTP_IP"];

smtpClient.Send(mmEnquiry);

If you can get this to work please PM me. I have tried to make it work with Gmail before to no avail.

Good luck

  • 0

Ok, so the C# code looks straight forward enough... Thanks.

What about setting it up on the server though? I assume i have to install some email server thing in Windows Server 2003 so that it can send email? Any advice on this bit - do i have to install MS Exchange or something?

  • 0

when you create the mail message and send it..

it will sit in the email queue of your IIS server.. (C:\Inetpub\mailroot\Queue) .. check this folder to make sure your code is working right :p

what i do is set that to point to my exchange server which then forwards the mail to its recipient..

but there are 2 options:

a) use a smart host which basically tells the server to send all its mail to another server set up with smtp (in my case exchange box)

b) direct delivery so your smtp server in iis connects to the correct smtp server directly

this may help

http://www.microsoft.com/technet/prodtechn...1.mspx?mfr=true :)

  • 0

on my server i have running the standard smtp server - i dont think i configured it... i think it is part of the add/remove components within the category IIS

With my code i store the IP address and other things in the web config file also note i negated the includes

  • 0
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 25);
MailMessage Message = new MailMessage(From, To);

Message.Subject = Subject;
Message.Body = Msg;

Message.IsBodyHtml = true;

smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential(User, Pass);

smtp.Send(Message);

That's part of my app. You have to enable SSL, and add your credentials to support authentication.

  • 0
  whoreman said:

MailMessage mmEnquiry = new MailMessage();

SmtpClient smtpClient = new SmtpClient();

MailAddress fromAddress = new MailAddress(ConfigurationManager.AppSettings["SUPPORT_EMAIL"],

ConfigurationManager.AppSettings["SITE_NAME"]);

mmEnquiry.To.Add(ConfigurationManager.AppSettings["SUPPORT_EMAIL"]);

mmEnquiry.Subject = "Website Error has occurred";

mmEnquiry.From = fromAddress;

mmEnquiry.Body = "Message goes here";

smtpClient.Host = ConfigurationManager.AppSettings["SMTP_IP"];

smtpClient.Send(mmEnquiry);

Ok going with this approach... the code compiles fine... but im not sure how i determin the host IP for the smtp client object... and im not sure im heading in the right direction... again, ill point out that i have no idea about setting up email :blush:.

What i want is to create a new web site with my own domain name like MyOwnWebSiteName.co.uk and then send emails from support@MyOwnWebSiteName.co.uk. So i assume i would get the smtp host ip from whoever i get the domain name with, that right??? So i owuld be using the domain company's smtp server? Any pointers here will be great...

  • 0

You can send them email as if it came from any address i believe..

dont quote me on that as iv not tried to do it from a domain i didnt own.. only an address that wasnt valid

tell me how you wnat your system to work, and what machines / systems you have at the moment and ill give you my best answer to try and set up the outgoing mail

  • 0
  BGM said:

tell me how you wnat your system to work, and what machines / systems you have at the moment and ill give you my best answer to try and set up the outgoing mail

I want to have an ASP.NET 2 web app where i can enter an email address and press 'send' and it sends a test email to that email address. I want the email to come from the address 'support@MyOwnWebSiteName.co.uk' - so that if they click reply it sends an email to 'support@MyOwnWebSiteName.co.uk'.

This will be hosted on a Win Server 2003 box - using IIS & .NET Framework 2.

As it stands, i havent setup smtp or any other email service on the Win Server 2003 box. Nor have i yet gone and bought the MyOwnWebSiteName.co.uk domain - i could probably do with some advice here too... not sure what kind of service id need to buy to be able to get that email address 'support@MyOwnWebSiteName.co.uk'.

  • 0

Your host just needs to provide an SMTP mail service. If you're using a domain you've registered, and you've set your DNS correctly, your host should reflect your domain name in your sent emails.

You'll receive the smtp server address and pop address when you get a host, provided that your host has an email service, which I've never seen one that didn't. Also, you can run your own smtp server from your local machine to send emails. I've used http://www.postcastserver.com/ in the past for testing purposes. They have a free edition that works quite well.

Once you get your mail server info, what I would do is to add a key/val to your web.config with the smtp server address. Then you simply reference that app setting in your code to get the server info. That's what tony-ipo is doing in his code.

  • 0
  Leo Natan said:

SmtpClient smtp = new SmtpClient("smtp.gmail.com", 25);
MailMessage Message = new MailMessage(From, To);

Message.Subject = Subject;
Message.Body = Msg;

Message.IsBodyHtml = true;

smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential(User, Pass);

smtp.Send(Message);

That's part of my app. You have to enable SSL, and add your credentials to support authentication.

WOOOO nice one

Cheers for that

  • 0
  weenur said:

Your host just needs to provide an SMTP mail service. If you're using a domain you've registered, and you've set your DNS correctly, your host should reflect your domain name in your sent emails.

You'll receive the smtp server address and pop address when you get a host, provided that your host has an email service, which I've never seen one that didn't. Also, you can run your own smtp server from your local machine to send emails. I've used http://www.postcastserver.com/ in the past for testing purposes. They have a free edition that works quite well.

Ok ill make sure my host has a SMTP mail service... seems easiest way to do it.

So Windows Server 2003 doesnt have an SMTP Server app included - you have to use 3rd party software like PostCastServer?

  • 0
  $phinX said:

Ok ill make sure my host has a SMTP mail service... seems easiest way to do it.

So Windows Server 2003 doesnt have an SMTP Server app included - you have to use 3rd party software like PostCastServer?

windows 2003 does have an smtp server, in IIS

however it is an arse to get working as alot of ISPs dont allow random email servers on their network.. (as i found out on the weekend when i tried to set it up properly) the easiest way you can get this to work is by using an external smtp server hosted by a service provider hosting your domain..

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • "Let's antagonize them more so they'll be less likely to invade us" Good logic there.
    • Samsung One UI 8 Watch beta program goes live in Korea and the U.S, for eligible devices by Sagar Naresh Bhavsar After launching the Android 16-based One UI 8 beta program for the Galaxy S25 series, Samsung has also kicked off the One UI 8 Watch beta program for eligible Galaxy smartwatches. Notably, the beta program is live for Galaxy Watch users in the U.S. and Korea through the Samsung Members app. The new One UI 8 Watch introduces a bunch of new health features, which Samsung says are to "help users build healthier habits." New features include Bedtime Guidance, Vascular Load, Running Coach, and Antioxidant Index. Here's what each feature does: Bedtime Guidance It recommends Galaxy Watch users the best time they can get a good sleep based on their recent sleep patterns. This feature could be helpful for those who have a hard time having a good asleep. To recommend the best sleep patterns, the Bedtime Guidance uses sleep data from the past three days and analyzes metrics such as sleep pressure and circadian rhythm. Sleeping on the recommended time may help users recover from irregular schedules and sleep patterns. Vascular Load Using this feature, the One UI 8 Watch-powered Galaxy smartwatches will measure the amount of stress your heart and blood vessels experience during sleep. It is one of the key indicators of heart health, because if the vascular load shows excessive fluctuations, then it could be an indicator of an underlying cardiovascular issue. Running Coach Samsung has also added a Running Coach feature with the One UI 8 Watch. It gives users a personalized running program based on their fitness levels. The user needs to run for 12 minutes for the Galaxy Watch to register and analyze certain metrics and present a performance score. Based on the score, the Running Coach will present a tailored plan to help them safely reach and work up to marathon levels. Antioxidant Index The Antioxidant Index measures the carotenoid levels, which are antioxidants found inside green and orange fruits and vegetables that are inside your skin, meant to fight aging and cell damage. With One UI 8 Watch, the Galaxy Watch will make use of a light-based sensor to scan the skin and, in five seconds, will show a report on how their eating habits are paying off. Eligible devices Beta program is available for owners of Galaxy Watch5 or later in the U.S. and South Korea. However, not all features will be available on all supported Galaxy Watch models. Here are the details: Bedtime Guidance: Available on Galaxy Watch5 series or later, requires Android phone running Android 11 or later and Samsung Health app v6.30.2 or later. Vascular Load: Supported on Galaxy Watch Ultra or later, requires Android 10 or later, and Samsung Health app v6.30.2 or later. Running Coach: Requires Galaxy Watch7 or later, Android 10 or later, and Samsung Health app v6.30.2 or later. Antioxidant Index: Supported on Galaxy Watch Ultra or later, Android 10 or later, and Samsung Health app v6.30.2 or later. How to join beta program If you own a Galaxy Watch5 series or later model, then you can head over to the Samsung Members app > navigate to the bottom of the page > tap on the Watch Beta poster > and enroll for the beta prorgam. Do note that their are limited seats available.
    • I disabled the optical camera in device manager.. leaving only the IR. This has fixed the issue for me...but only because I never use the optical camera. After each monthly update re-enable the optical just to see if it's fixed...but nope! It's annoying though how this issue hasn't been acknowledged by Microsoft.
    • Linux is a different kettle of fish to macOS and Windows, if it ran the software I required, I may have looked at it, instead of the Mac, also the Mac is a pretty powerful machine that uses less energy than x86 machines. I never in my widest dreams thought I would ever buy a Mac, the price and restrictions of the hardware, I always liked machines that I could update internally, one reason why I never liked laptops. But here I am, a nice little Mac mini M2 pro. I doubt i will replace it for a long time, if I ever do, it does what I need.
    • 106 years ago! A comic strip from 1919 predicted — eerily and accurately — what would happen if our phones fit into our pockets.  W. K. Haselden’s ‘The Pocket Telephone: When Will it Ring?’ was published in “The Mirror” when barely 1/3rd of American homes even had telephones. (A double irony: most of us are viewing this on our “pocket phones”.)
  • Recent Achievements

    • Week One Done
      patrickft456 earned a badge
      Week One Done
    • One Month Later
      patrickft456 earned a badge
      One Month Later
    • One Month Later
      Jdoe25 earned a badge
      One Month Later
    • Explorer
      Legend20 went up a rank
      Explorer
    • One Month Later
      jezzzy earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      640
    2. 2
      ATLien_0
      277
    3. 3
      +FloatingFatMan
      172
    4. 4
      Michael Scrip
      156
    5. 5
      Steven P.
      132
  • Tell a friend

    Love Neowin? Tell a friend!