ASP.NET Beratung & Entwicklung   ·   helpyoo.de - The friendly computer people

xs.Serialize(brainstream,deedee)

# Friday, September 23, 2005

« PPC und PSP | Home | PSP2TV - TV-Ausgang an der PSP... »

Mailversand mit System.Net.Mail in ASP.NET 2.0

Da sich die Mailklasse in ASP.NET 2.0 ja stark verändert hat von System.Web.Mail zu System.Net.Mail waren noch ein paar Fragen offen wie diverse Properties zu belegen sind. Desweiteren ist an Funktionalität auch einiges hinzugekommen (Asynchroner Versand, Attachments, usw.).

Hier ein kleines Beispiel in C#:


using System.Net;
using System.Net.Mail;
using System.Net.Mime;

...
try
{

SmtpClient mySmtpClient = new SmtpClient("mein.smtpserver.de");

// set smtp-client with basicAuthentication
mySmtpClient.UseDefaultCredentials = false;
System.Net.NetworkCredential basicAuthenticationInfo = new System.Net.NetworkCredential("username", "password");
mySmtpClient.Credentials = basicAuthenticationInfo;

// add from,to mailaddresses
MailAddress from = new MailAddress("test@error.de", "TestFromName");
MailAddress to = new MailAddress("test2@error.de", "TestToName");
MailMessage myMail = new System.Net.Mail.MailMessage(from, to);

// add cc
MailAddress copy = new MailAddress("test3@error.de");
myMail.CC.Add(copy);

// add bcc
MailAddress bcc = new MailAddress("test4@error.de");
myMail.Bcc.Add(bcc);

// add ReplyTo
MailAddress replyto = new MailAddress("reply@error.de");
myMail.ReplyTo = replyto;

// set Subject and encoding
myMail.Subject = "Testnachricht...";
myMail.SubjectEncoding = System.Text.Encoding.UTF8;

// set body-message and encoding
myMail.Body = "<b>Testmail</b><br>mit HTML und Anhang in 2.0";
myMail.BodyEncoding = System.Text.Encoding.UTF8;
// text or html
myMail.IsBodyHtml = true;

// add attachments (1..n)
Attachment at = new Attachment("C:\\attachment.jpg");
myMail.Attachments.Add(at);

// send normal
mySmtpClient.Send(myMail);
}

catch
(SmtpException ex)
{
throw new ApplicationException
("SmtpException has occured: " + ex.Message);
}
catch (Exception ex)
{
throw ex;
}

...

Zu beachten ist die unterschiedliche Behandlung der Mailadressen, CC und Bcc werden einfach hinzugefügt (für mehrere Ccs, Bccs einfach weitere mit .Add hinzufügen), für eine andere Antwortadresse wird ReplyTo direkt gesetzt. Wird keine Authentifizierung benötigt z.B. localhost, entfällt das Setzen der Credentials.
Die Credentials lassen sich alternativ auch in der web.Config setzen:

<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network defaultCredentials="False" host="mein.smtpserver.de" password="pass" port="25"
userName="user" />
</smtp>
</mailSettings>
</system.net>


Mit Attachments.Add können beliebige Anhänge hinzugefügt werden, die IsBodyHtml-Property entscheidet über text oder html-Nachrichtenformat.
Wenn man das Ganze in eine eigene Klasse verpackt und entsprechende Eventhandler hinzufügt, ist auch der asynchrone Versand über mySmtpClient.SendAsync() möglich.

mySmtpClient.SendCompleted +=
new SendCompletedEventHandler(SendCompletedHandler);
mySmtpClient.SendAsync(myMail, myMail.To.ToString()); //identify with to-address
...

void SendCompletedHandler(System.Object sender,
AsyncCompletedEventArgs e)
{
//Code to process the completion
}

msdn System.Net.Mail Class
Codeguru Beispiel


Geschrieben am , Comments [0]
Categories: ASP 2.0 |  CSharp
Technorati Tags:  |  | 256 words in this post.
| Artikel bookmarken: Beitrag zu Mr.Wong hinzufügen   Beitrag zu YiGG.de hinzufügen   Beitrag zu Digg.com hinzufügen   Beitrag zu del.icio.us hinzufügen   Beitrag zu Google Bookmarks hinzufügen   Beitrag zu Linkarena hinzufügen   Beitrag zu WindowsLiveFavorites hinzufügen   Beitrag zu WindowsLiveFavorites hinzufügen  



OpenID
Please login with either your OpenID above, or your details below.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Live Comment Preview

Aktuelle Empfehlungen


Suche

RSS Feed

FeedBurner Feed Count Subscribers

Tag cloud

About (1) .net (134) .net 3.0 (10) ADO (2) ASP 2.0 (81) Community (26) Compact Framework (7) CSharp (17) Enhancements (36) Framework (28) patterns & practices (13) Silverlight (8) SQL (19) Visual Studio (62) WebServices (6) WPF (7) WPF/E (9) XNA (6) About (5) AJAX (11) Apple (25) Blogging (50) RSS (17) Themes (7) dasBlog (74) dasBlog (1) Design (14) Gadgets (2) Gaming (36) Geschenkideen (13) GIS (24) Google (14) Javascript (2) Medien (16) Microsoft (147) Mobile (52) Movies (9) Music (28) Netzwelt (136) Office (12) Offtopic (48) Fun (69) OS (9) Linux (29) MacOSX (71) Windows (205) Vista (72) Other Interests (16) Brain&Consciousness (2) Brainfood (16) Food (4) Fussball WM 2006 (20) HitchHikers Guide (14) Programming (9) Security (57) Antispam (2) Antispam  (3) Sony (1) tagged (1) Technology (125) 3D (1) Browser (72) CSS (10) Flash (11) iPhone (8) iPod (28) Kommunikation (6) Media (56) PocketPC (19) PS3 (3) PSP (25) Standards (11) Video (1) Web 2.0 (30) Webserver (4) XML (8) SearchEngines (59) Tools (169) VJ (4) Werbung (3) Windows Live (31) Windows Live Writer (16) XBOX (81) Zeitgeist (4) Zune (5)

Aktuelle Artikel

Blog Archiv

Über mich

vj deedee
 vjdeedee
XING

    Links

    Einkaufen

    Brainstream Shop

    Buttons

    Blogverzeichnis - Blog Verzeichnis bloggerei.de

    PageRank Verifizierung deedee.brainstream.net
    Suchmaschinenoptimierung mit Ranking-Hits
    prontoo.de - Pagerank Anzeige ohne Toolbar

    Blog Statistik

    Total Posts: 1045
    This Year: 1
    This Month: 1
    This Week: 1
    Comments: 277

    Letzter Update: Tuesday, January 06, 2009 7:59:49 PM (Mitteleuropäische Zeit, UTC+01:00)
    Erstellt mit: newtelligence dasBlog 2.2.8279.16125

    Login

    InfosClient