2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.Web / System.Web.Mail / SmtpMail.cs
1 //\r
2 // System.Web.Mail.SmtpMail.cs\r
3 //\r
4 // Author:\r
5 //    Lawrence Pit (loz@cable.a2000.nl)\r
6 //    Per Arneng (pt99par@student.bth.se) (SmtpMail.Send)\r
7 //\r
8
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 // 
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 // 
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //
29 \r
30 using System;\r
31 using System.Net;\r
32 using System.Net.Sockets;\r
33 using System.Text;\r
34 using System.IO;\r
35 using System.Reflection;\r
36 \r
37 namespace System.Web.Mail\r
38 {\r
39         /// <remarks>\r
40         /// </remarks>\r
41         public class SmtpMail\r
42         {\r
43                 private static string smtpServer = "localhost";\r
44                 \r
45                 // Constructor          \r
46                 private SmtpMail ()\r
47                 {\r
48                         /* empty */\r
49                 }               \r
50 \r
51                 // Properties\r
52                 public static string SmtpServer {\r
53                         get { return smtpServer; } \r
54                         set { smtpServer = value; }\r
55                 }\r
56                 \r
57                 \r
58                 public static void Send (MailMessage message) \r
59                 {\r
60                                                     \r
61                     try {\r
62                         \r
63                         // wrap the MailMessage in a MailMessage wrapper for easier\r
64                         // access to properties and to add some functionality\r
65                         MailMessageWrapper messageWrapper = new MailMessageWrapper( message );\r
66                         \r
67                         SmtpClient smtp = new SmtpClient (smtpServer);\r
68                         \r
69                         smtp.Send (messageWrapper);\r
70                        \r
71                         smtp.Close ();\r
72                     \r
73                     } catch (SmtpException ex) {\r
74                         // LAMESPEC:\r
75                         // .NET sdk throws HttpException\r
76                         // for some reason so to be compatible\r
77                         // we have to do it to :(\r
78                         throw new HttpException (ex.Message, ex);\r
79                     \r
80                     } catch (IOException ex) {\r
81                         \r
82                         throw new HttpException (ex.Message, ex);\r
83                         \r
84                     } catch (FormatException ex) {\r
85                         \r
86                         throw new HttpException (ex.Message, ex);\r
87                     \r
88                     } catch (SocketException ex) {\r
89                         \r
90                         throw new HttpException (ex.Message, ex);\r
91                         \r
92                     }\r
93                     \r
94                 }\r
95                 \r
96                 public static void Send (string from, string to, string subject, string messageText) \r
97                 {\r
98                         MailMessage message = new MailMessage ();\r
99                         message.From = from;\r
100                         message.To = to;\r
101                         message.Subject = subject;\r
102                         message.Body = messageText;\r
103                         Send (message);\r
104                 }\r
105         \r
106         }\r
107         \r
108 } //namespace System.Web.Mail\r