* Mono.Posix_test.dll.sources: Move StdlibTest into the Mono.Unix.Native
[mono.git] / mcs / class / System.Web / System.Web.Mail / MailMessage.cs
1 //
2 // System.Web.Mail.MailMessage.cs
3 //
4 // Author:
5 //    Lawrence Pit (loz@cable.a2000.nl)
6 //    Per Arneng (pt99par@student.bth.se)
7 //      Sanjay Gupta (gsanjay@novell.com)
8 //
9 // Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
10 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 // 
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 // 
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30
31 using System.Collections;
32 using System.Collections.Specialized;
33 using System.Security.Permissions;
34 using System.Text;
35
36 namespace System.Web.Mail
37 {
38 #if NET_2_0
39 #pragma warning disable 618
40 #endif
41         // CAS
42         [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
43         [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
44 #if NET_2_0
45         [Obsolete ("The recommended alternative is System.Net.Mail.MailMessage.")]
46 #endif
47         public class MailMessage
48         {
49                 private ArrayList attachments;
50                 private string bcc;
51                 private string body = String.Empty;
52                 private Encoding bodyEncoding;
53                 private MailFormat bodyFormat;
54                 private string cc;              
55                 private string from;
56                 private ListDictionary headers;
57                 private MailPriority priority;
58                 private string subject = String.Empty;
59                 private string to;
60                 private string urlContentBase;
61                 private string urlContentLocation;
62                 
63                 // Constructor          
64                 public MailMessage ()
65                 {
66                         attachments = new ArrayList (8);
67                         headers = new ListDictionary ();
68                         bodyEncoding = Encoding.Default;
69 #if NET_1_1
70                         fields = new Hashtable ();
71 #endif
72                 }               
73         
74                 // Properties
75                 public IList Attachments {
76                         get { return (IList) attachments; }
77                 }               
78                 
79                 public string Bcc {
80                         get { return bcc; } 
81                         set { bcc = value; }
82                 }
83         
84                 public string Body {
85                         get { return body; } 
86                         set { body = value; }
87                 }
88
89                 public Encoding BodyEncoding {
90                         get { return bodyEncoding; } 
91                         set { bodyEncoding = value; }
92                 }
93
94                 public MailFormat BodyFormat {
95                         get { return bodyFormat; } 
96                         set { bodyFormat = value; }
97                 }               
98
99                 public string Cc {
100                         get { return cc; } 
101                         set { cc = value; }
102                 }
103
104                 public string From {
105                         get { return from; } 
106                         set { from = value; }
107                 }
108
109                 public IDictionary Headers {
110                         get { return (IDictionary) headers; }
111                 }
112                 
113                 public MailPriority Priority {
114                         get { return priority; } 
115                         set { priority = value; }
116                 }
117                 
118                 public string Subject {
119                         get { return subject; } 
120                         set { subject = value; }
121                 }
122
123                 public string To {
124                         get { return to; }   
125                         set { to = value; }
126                 }
127
128                 public string UrlContentBase {
129                         get { return urlContentBase; } 
130                         set { urlContentBase = value; }
131                 }
132
133                 public string UrlContentLocation {
134                         get { return urlContentLocation; } 
135                         set { urlContentLocation = value; }
136                 }
137
138 #if NET_1_1
139                 private Hashtable fields;
140                 
141                 public IDictionary Fields {
142                         get {
143                                 return (IDictionary) fields;
144                         }
145                 }
146 #endif
147         }
148 #if NET_2_0
149 #pragma warning restore 618
150 #endif
151 }