Пример #1
0
                    /// <summary>
		            /// Sends all messages using the specified host.
		            /// </summary>
		            /// <param name="servers">Servers to be used to send the message (in preference order).</param>
		            /// <param name="messages">MessageCollection to be sent.</param>
		            /// <param name="errors">Reference to SmtpException object collection where errors occuring during the process will be stored.</param>
		            /// <returns>Amount of messages successfully sent.</returns>
		            /// <example>
		            /// <code>
		            /// C#
		            /// 
		            /// Message message = new Message();
		            /// message.Subject = "Test";
		            /// message.From = new Address("*****@*****.**","John Doe");
		            /// message.To.Add("*****@*****.**","Mike Johns");
		            /// message.BodyText.Text = "Hello this is a test!";
		            /// 
		            /// Message message1 = new Message();
		            /// message1.Subject = "Hey David!";
		            /// message1.From = New Address("*****@*****.**","John Doe");
		            /// message1.To.Add("*****@*****.**","David Clark");
		            /// message1.BodyText.Text = "How you doing ?";
		            /// 
		            /// MessageCollection messages = new MessageCollection();
		            /// messages.Add(message);
		            /// messages.Add(message1);
		            /// 
		            /// ServerCollection servers = new ServerCollection();
		            /// servers.Add("mail.myhost.com",25);
		            /// servers.Add("mail2.myhost.com",25);
		            /// 
		            /// SmtpClient.Send(messages,servers,myErrorCollection);
		            /// 
		            /// VB.NET
		            /// 
		            /// Dim message As New Message
		            /// message.Subject = "Test"
		            /// message.From = New Address("*****@*****.**","John Doe")
		            /// message.To.Add("*****@*****.**","Mike Johns")
		            /// message.BodyText.Text = "Hello this is a test!"
		            /// 
		            /// Dim message1 As New Message
		            /// message1.Subject = "Hey David!"
		            /// message1.From = New Address("*****@*****.**","John Doe")
		            /// message1.To.Add("*****@*****.**","David Clark")
		            /// message1.BodyText.Text = "How you doing ?"
		            /// 
		            /// Dim messages As New MessageCollection
		            /// messages.Add(message)
		            /// messages.Add(message1)
		            /// 
		            /// Dim servers As New ServerCollection
		            /// servers.Add("mail.myhost.com",25)
		            /// servers.Add("mail2.myhost.com",25)
		            /// 
		            /// SmtpClient.Send(messages,servers,myErrorCollection)
		            /// 
		            /// JScript.NET
		            /// 
		            /// var message:Message = new Message();
		            /// message.Subject = "Test";
		            /// message.From = new Address("*****@*****.**","John Doe");
		            /// message.To.Add("*****@*****.**","Mike Johns");
		            /// message.BodyText.Text = "Hello this is a test!";
		            /// 
		            /// var message1:Message = new Message();
		            /// message1.Subject = "Hey David!";
		            /// message1.From = New Address("*****@*****.**","John Doe");
		            /// message1.To.Add("*****@*****.**","David Clark");
		            /// message1.BodyText.Text = "How you doing ?";
		            /// 
		            /// var messages:MessageCollection = new MessageCollection();
		            /// messages.Add(message);
		            /// messages.Add(message1);
		            /// 
		            /// var servers:ServerCollection = new ServerCollection();
		            /// servers.Add("mail.myhost.com",25);
		            /// servers.Add("mail2.myhost.com",25);
		            /// 
		            /// SmtpClient.Send(messages,servers,myErrorCollection);
		            /// </code>
		            /// </example>
		            public static int SendCollection(MessageCollection messages, ServerCollection servers, ref SmtpExceptionCollection errors)
		            {
                        ActiveUp.Net.Mail.SmtpClient smtp = new ActiveUp.Net.Mail.SmtpClient();
			            int sent=0;
			            foreach(Message message in messages)
			            {
                            try
				            {
                                // Ensure that the mime part tree is built
                                message.CheckBuiltMimePartTree();

					            for(int i=0;i<servers.Count;i++)
					            {
						            try
                                    {
                                        if (servers[i].ServerEncryptionType != EncryptionType.None)
                                        {
#if !PocketPC
                                            smtp.ConnectSsl(servers[i].Host, servers[i].Port);
#else
                                            smtp.Connect(servers[i].Host, servers[i].Port);
#endif
                                        }
                                        else
                                        {
                                            smtp.Connect(servers[i].Host, servers[i].Port);
                                        }
							            try
							            {
								            smtp.Ehlo(System.Net.Dns.GetHostName());
							            }
							            catch
							            {
								            smtp.Helo(System.Net.Dns.GetHostName());
							            }
							            if(servers[i].Username!=null && servers[i].Username.Length>0 && servers[i].Password!=null && servers[i].Password.Length>0) smtp.Authenticate(servers[i].Username,servers[i].Password,SaslMechanism.Login);
							            if(message.From.Email!=string.Empty) smtp.MailFrom(message.From);
							            else smtp.MailFrom(message.Sender);
							            smtp.RcptTo(message.To);
							            smtp.RcptTo(message.Cc);
							            smtp.RcptTo(message.Bcc);
							            smtp.Data(message.ToMimeString());
							            smtp.Disconnect();
							            sent++;
							            break;
						            }
						            catch
						            {
							            continue;
						            }
					            }
				            }
				            catch(ActiveUp.Net.Mail.SmtpException ex) { errors.Add(ex); }
			            }
			            return sent;
		            }
Пример #2
0
                    /// <summary>
		            /// Sends the message using the specified host and port after authentication.
		            /// </summary>
		            /// <param name="messages">The message collection to be sent.</param>
		            /// <param name="host">Host to be used to send the message.</param>
		            /// <param name="username">Username to be used for the authentication process.</param>
		            /// <param name="password">Password to be used for the authentication process.</param>
		            /// <param name="mechanism">SASL mechanism to be used.</param>
		            /// <param name="port">Port to be used to connect to the specified host.</param>
		            /// <param name="errors">Reference to SmtpException object collection where errors occuring during the process will be stored.</param>
		            /// <returns>Amount of messages successfully sent.</returns>
                    public static int SendCollection(MessageCollection messages, string host, int port, string username, string password, SaslMechanism mechanism, ref SmtpExceptionCollection errors)
		            {
			            ActiveUp.Net.Mail.SmtpClient smtp = new ActiveUp.Net.Mail.SmtpClient();
			            smtp.Connect(host,port);
			            try
			            {
				            smtp.Ehlo(System.Net.Dns.GetHostName());
			            }
			            catch
			            {
				            smtp.Helo(System.Net.Dns.GetHostName());
			            }
			            smtp.Authenticate(username,password,mechanism);
			            int sent = 0;
			            foreach(Message message in messages)
			            {
				            try
				            {
                                // Ensure that the mime part tree is built
                                message.CheckBuiltMimePartTree();

					            if(message.From.Email!=string.Empty) smtp.MailFrom(message.From);
					            else smtp.MailFrom(message.Sender);
					            smtp.RcptTo(message.To);
					            smtp.RcptTo(message.Cc);
					            smtp.RcptTo(message.Bcc);
					            smtp.Data(message.ToMimeString());
					            sent++;
				            }
				            catch(ActiveUp.Net.Mail.SmtpException ex) { errors.Add(ex); }
			            }
			            smtp.Disconnect();
			            return sent;
                    }
Пример #3
0
		            /// <summary>
                    /// Sends each message using the DirectMailing technique (SMTP connection with every recipient's mail exchange server for delivery).
                    /// MX Records are cached for faster operation. Errors occuring during the process are catched and stored in a user-defined collection for review at a later time.
                    /// </summary>
                    /// <param name="messages">The message collection to be sent.</param>
                    /// <param name="errors">Reference to an SmtpException Collection to be filled with errors occuring during this process.</param>
                    /// <returns>Amount of messages successfully sent.</returns>
                    /// <example>
                    /// <code>
                    /// C#
                    /// 
                    /// Message message = new Message();
                    /// message.Subject = "Test";
                    /// message.From = new Address("*****@*****.**","John Doe");
                    /// message.To.Add("*****@*****.**","Mike Johns");
                    /// message.BodyText.Text = "Hello this is a test!";
                    /// 
                    /// Message message1 = new Message();
                    /// message1.Subject = "Hey David!";
                    /// message1.From = New Address("*****@*****.**","John Doe");
                    /// message1.To.Add("*****@*****.**","David Clark");
                    /// message1.BodyText.Text = "How you doing ?";
                    /// 
                    /// MessageCollection messages = new MessageCollection();
                    /// messages.Add(message);
                    /// messages.Add(message1);
                    /// 
                    /// SmtpClient.Send(messages,myErrorCollection);
                    /// 
                    /// VB.NET
                    /// 
                    /// Dim message As New Message
                    /// message.Subject = "Test"
                    /// message.From = New Address("*****@*****.**","John Doe")
                    /// message.To.Add("*****@*****.**","Mike Johns")
                    /// message.BodyText.Text = "Hello this is a test!"
                    /// 
                    /// Dim message1 As New Message
                    /// message1.Subject = "Hey David!"
                    /// message1.From = New Address("*****@*****.**","John Doe")
                    /// message1.To.Add("*****@*****.**","David Clark")
                    /// message1.BodyText.Text = "How you doing ?"
                    /// 
                    /// Dim messages As New MessageCollection
                    /// messages.Add(message)
                    /// messages.Add(message1)
                    /// 
                    /// SmtpClient.Send(messages,myErrorCollection)
                    /// 
                    /// JScript.NET
                    /// 
                    /// var message:Message = new Message();
                    /// message.Subject = "Test";
                    /// message.From = new Address("*****@*****.**","John Doe");
                    /// message.To.Add("*****@*****.**","Mike Johns");
                    /// message.BodyText.Text = "Hello this is a test!";
                    /// 
                    /// var message1:Message = new Message();
                    /// message1.Subject = "Hey David!";
                    /// message1.From = New Address("*****@*****.**","John Doe");
                    /// message1.To.Add("*****@*****.**","David Clark");
                    /// message1.BodyText.Text = "How you doing ?";
                    /// 
                    /// var messages:MessageCollection = new MessageCollection();
                    /// messages.Add(message);
                    /// messages.Add(message1);
                    /// 
                    /// SmtpClient.Send(messages,myErrorCollection);
                    /// </code>
                    /// </example>
                    public static int DirectSendCollection(MessageCollection messages, ref SmtpExceptionCollection errors)
                    {
                        int sent = 0;
                        foreach (ActiveUp.Net.Mail.Message message in messages)
                        {
                            try
                            {
                                ActiveUp.Net.Mail.SmtpClient.DirectSend(message);
                                sent++;
                            }
                            catch (ActiveUp.Net.Mail.SmtpException ex) { errors.Add(ex); }
                        }
                        return sent;
                    }