Welcome to mirror list, hosted at ThFree Co, Russian Federation.

SmtpMail.cs « System.Web.Mail « System.Web « class « mcs - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 9884191f17151badf416844d4fb154810f1787f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//
// System.Web.Mail.SmtpMail.cs
//
// Author:
//    Lawrence Pit (loz@cable.a2000.nl)
//
//

using System;
using System.Net;
using System.Reflection;

namespace System.Web.Mail
{
	/// <remarks>
	/// </remarks>
	public class SmtpMail
	{
		private static string smtpServer;
		
		// Constructor		
		private SmtpMail ()
		{
			/* empty */
		}		

		// Properties
		public static string SmtpServer {
			get { return smtpServer; } 
			set { smtpServer = value; }
		}
		
		[MonoTODO]
		public static void Send (MailMessage message) 
		{
			// delegate work to loosly coupled component Mono.Mail
			
			// Mono.Mail.Smtp.SmtpSender.Send (smtpServer, message);	
			
			// NOTE: Mono.Mail is work in progress, and could be replaced by 
			// another component. For now:
			
			throw new NotImplementedException("Mono.Mail component is work in progress");

			try {
				// TODO: possibly cache ctor info object..
				Type stype = Type.GetType ("Mono.Mail.Smtp.SmtpSender");
				if (stype == null) {
					throw new Exception ("You must have Mono.Mail installed to send mail.");
				}
				Type[] types = new Type[2];
				types[0] = typeof (string);
				types[1] = message.GetType ();
				ConstructorInfo cinfo = 
					stype.GetConstructor(BindingFlags.Instance | BindingFlags.Public, null,
						CallingConventions.HasThis, types, null);
				cinfo.Invoke (new object[] {smtpServer, message});
			} catch (Exception) {
				throw new Exception ("Unable to call Mono.Mail.Smtp.SmtpSender");
			}
		}
		
		public static void Send (string from, string to, string subject, string messageText) 
		{
			MailMessage message = new MailMessage ();
			message.From = from;
			message.To = to;
			message.Subject = subject;
			message.Body = messageText;
			Send (message);
		}
	
	}
	
} //namespace System.Web.Mail