Library tutorials & articles
Custom SMTP in C#
Introduction
This series of articles is written to show the user how to write TCP/ IP based client applications using C# on Microsoft's new .NET framework. This is the first article in this series.
The first killer applications on the Internet were email and netnews. Email on the Internet was developed using two simple Internet protocols, SMTP and POP3. The first two articles in this series, I'll present to you two classes for implementing SMTP and POP3 clients. In the third article in this series, I'll present to you one class for implementing a NNTP client. The SMTP or Simple Mail Transfer Protocol is described in RFC 821. This application protocols is used to send email over the Internet.
The .NET framework already contains an SMTP class in the System.Web.Mail namespace
called SmtpMail. This class is sufficient for sending email over
the Internet and I would not suggest that the class I'm presenting in this
article is any better or worse. Let's just say that it is different. If you
can get away with using the .NET SmtpMail class, then I suggest
you do just that. The only advantage of my class is that it is open source
and let me suggest
that the SmtpMail class in .NET has a few more features. My motivation
in writing this article is not to try and write a better SMTP class, but rather
to show how to write TCP/ IP based clients in C#.
Related articles
Related discussion
-
How to POP3 in C#
by baeltazor (10 replies)
-
google apps email using php
by lghtyr (0 replies)
Related podcasts
-
Moving your Email into the Cloud - Google for Apps and Live Custom Domains
Scott and Carl talk about Scott's Family's recent move to Google Apps and Carl considers moving to Live Custom Domains. What are the benefits of moving your life into the cloud?
http://www.lesnikowski.com/mail
Try using this library:
http://www.lesnikowski.com/mail
It's simple and effective.
Allows sending, receiving and parsing email messages.
Encodes/decodes any kind of attachment.
Includes POP3 and STMP clients.
Written entirely in managed code in C#.
CC (and BCC, but the B stands for "Blind" so it's not marked as a copy) are traditionally used to send
it to others that need to see the letter as well without making any changes to it.
With SMTP, I think you just use another RCPT TO and perhaps add a CC: blah
and in the data section of the email...
So to RECEIVE SMTP or INTERCEPT SMTP packets, does one need to write a local mail server?
Looking at the code, I don't see any differentiation between To, CC, and BCC when you are sending them to the Mail server. For that matter, RFC821 doesn't seem to be much help on the matter either.
How should one identify the three types when doing an SMTP send?
In this example, SMTP class inherits tcpclient, is it more suitable to use a udpclient to send and receive e-mail?
I searched this site again and found this article
http://www.developerfusion.com/show/4071/1/
If I was to strip out all my proprietary code you would end up with this example. Hopefully this will be enough to
get you started.
Cheers
Gord
Gordonm,
thank you so very much for your willingness to share your codes with me. YES, I do want it. A little detail about my program:
I am trying to built a mail server just like Yahoo or Hotmail, but it's a mini one It's supposed to receive an email then save the sender address, title, message, and date to SQL server 2000 database. I am writing it in C# and ASP.NET.
Once again, THANK YOU SO MUCH
Sincerely,
tinybunny_8
I was getting frustrated with not being able to find any examples of this so I wrote my own.
It is socket based, uses SMTP and seems to work very nicely. If you are interested let me know and perhaps I can post enough of an example to get people going.
Gord
It would appear so at a cursory glance....
I'll email Randy about that....
You can't receive email with SMTP - as its only for sending email! You use POP3 instead - see http://www.developerfusion.com/show/4039/
I agree with gordonm, if you know how to receive email using SMTP and C#... would you please write one or show me where to start? I am working on project and need a clue so badly.
Thanks
tinybunny_8
I would love to see an example of using Sockets to receive email. Could you please do an article covering that area.
TIA
Gord
You saved my day with this excellent example, thx Randy
In your Write() method, you declare a byte array of size 1024. Is that the maximum string length that you can send to the Write() method at once?
This thread is for discussions of Custom SMTP in C#.