public void SendMailWithStandardConfig() { var connCounter = 0; var disconnCounter = 0; SmtpClientConfig usedClientConfig = null; void OnAfterSend(object sender, MailSenderAfterSendEventArgs args) { lock (_locker) { usedClientConfig = args.SmtpClientConfig; } } void OnSmtpConnected(object sender, MailSenderSmtpClientEventArgs args) { lock (_locker) { connCounter++; } } void OnSmtpDisconnected(object sender, MailSenderSmtpClientEventArgs args) { lock (_locker) { disconnCounter++; } } SendMail(OnAfterSend, OnSmtpConnected, OnSmtpDisconnected); Assert.AreEqual(connCounter, 1); Assert.AreEqual(disconnCounter, 1); Assert.AreEqual(1, _server.ReceivedEmailCount); Assert.AreEqual(_settings.SenderConfig.SmtpClientConfig[0].Name, usedClientConfig.Name); Console.WriteLine($"Sending mail with smtp config name '{usedClientConfig.Name}' passed.\n\n"); Console.WriteLine(_server.ReceivedEmail[0].Data); }
public void Message_Output_Directory() { var smtpConfig = new SmtpClientConfig(); smtpConfig.MessageOutput = MessageOutput.Directory; Assert.AreEqual(System.IO.Path.GetTempPath(), smtpConfig.MailOutputDirectory); }
public void Equality() { var sc1 = new SmtpClientConfig(); var sc2 = new SmtpClientConfig(); Assert.IsTrue(sc1.Equals(sc2)); Assert.IsFalse(sc1.Equals(null)); Assert.IsFalse(sc1.Equals(new object())); }
public void Message_Output_PickupDirectoryFromIis() { var smtpConfig = new SmtpClientConfig(); smtpConfig.MessageOutput = MessageOutput.PickupDirectoryFromIis; // May throw for many reasons: // https://torontoprogrammer.ca/2011/04/fixing-the-cannot-get-iis-pickup-directory-error-in-asp-net/ // Assert.DoesNotThrow(() => { var x = smtpConfig.MailOutputDirectory; }); }
public void NotEqual() { var sc1 = new SmtpClientConfig(); var sc2 = new SmtpClientConfig { SmtpPort = 12345 }; Assert.IsFalse(sc1.Equals(sc2)); Assert.IsFalse(sc1.Equals(null)); Assert.IsFalse(sc1.Equals(new object())); }
static void Main(string[] args) { SmtpClientConfig config = new SmtpClientConfig(587, "smtp.gmail.com", "*****@*****.**", "JweIAail247!"); config.HtmlFormat = false; SmtpClient client = new SmtpClient(config); client.Send("*****@*****.**", "welcome to oncor", "say hello from http://oncordev.oncor.com/api/verify/11212121-5515"); client.Send("*****@*****.**", "*****@*****.**", "welcome to oncor", "say hello from http://oncordev.oncor.com/api/verify/11212121-5515"); }
public void SendMailWithBackupConfig() { SmtpClientConfig usedClientConfig = null; EventHandler <MailSenderAfterSendEventArgs> onAfterSend = (sender, args) => { usedClientConfig = args.SmtpClientConfig; }; _settings.SenderConfig.SmtpClientConfig[0].SmtpPort++; // set wrong server port, so that backup config should be taken SendMail(onAfterSend); Assert.AreEqual(1, _server.ReceivedEmailCount); Assert.AreEqual(_settings.SenderConfig.SmtpClientConfig[1].Name, usedClientConfig.Name); Console.WriteLine($"Sending mail with smtp config name '{usedClientConfig.Name}' passed.\n\n"); Console.WriteLine(_server.ReceivedEmail[0].Data); }
public void SendMailWithStandardConfig() { SmtpClientConfig usedClientConfig = null; EventHandler <MailSenderAfterSendEventArgs> onAfterSend = (sender, args) => { usedClientConfig = args.SmtpClientConfig; }; SendMail(onAfterSend); Assert.AreEqual(1, _server.ReceivedEmailCount); Assert.AreEqual(_settings.SenderConfig.SmtpClientConfig[0].Name, usedClientConfig.Name); Console.WriteLine($"Sending mail with smtp config name '{usedClientConfig.Name}' passed.\n\n"); Console.WriteLine(_server.ReceivedEmail[0].Data); }
public void Read_SmtpConfig_From_ConfigFile(string host, int port, string clientDomain) { var smtpConfig = new SmtpClientConfig(); var smtpSettings = new SmtpSection() { Network = { Host = host, Port = port, ClientDomain = clientDomain } }; ChangeSmtpConfigFile(smtpSettings); smtpConfig.ReadSmtpConfigurationFromConfigFile(); Assert.IsTrue(smtpConfig.SmtpHost == host && smtpConfig.SmtpPort == port && smtpConfig.ClientDomain == clientDomain); }
public void Read_SmtpConfig_From_ConfigFile(string username, string password, bool credentialSet) { var smtpConfig = new SmtpClientConfig(); var smtpSettings = new SmtpSection() { Network = { UserName = username, Password = password } }; ChangeSmtpConfigFile(smtpSettings); smtpConfig.ReadSmtpConfigurationFromConfigFile(); Assert.AreEqual(credentialSet, smtpConfig.NetworkCredential != null); if (credentialSet) { Assert.AreEqual(username, ((Credential)smtpConfig.NetworkCredential)?.Username); Assert.AreEqual(password, ((Credential)smtpConfig.NetworkCredential)?.Password); } }
public void With_AuthenticateException(Type authenticateException) { var sender = GetMailMergeSender(); var msg = GetMimeMessage(); var config = new SmtpClientConfig { MessageOutput = MessageOutput.SmtpServer, NetworkCredential = new Credential() }; sender.Config.SmtpClientConfig[0] = config; Exception exception; if (authenticateException == typeof(AuthenticationException)) { exception = new AuthenticationException(); } else if (authenticateException == typeof(SmtpCommandException)) { exception = new SmtpCommandException(SmtpErrorCode.UnexpectedStatusCode, SmtpStatusCode.CommandNotImplemented, "unitTest"); } else if (authenticateException == typeof(SmtpProtocolException)) { exception = new SmtpProtocolException(); } else if (authenticateException == typeof(IOException)) { exception = new IOException(); } else if (authenticateException == typeof(Exception)) { exception = new Exception(); } else { throw new ArgumentOutOfRangeException(); } var smtpClient = new FakeSmtpClient { AuthenticateException = exception }; Assert.Throws(authenticateException, () => sender.SendMimeMessage(smtpClient, msg, config)); Assert.ThrowsAsync(authenticateException, async() => await sender.SendMimeMessageAsync(smtpClient, msg, config)); }
//[Ignore("Read_SmtpConfig_From_ConfigFile")] public void Read_SmtpConfig_From_ConfigFile(SmtpDeliveryMethod smtpDeliveryMethod, bool enableSsl) { var smtpConfig = new SmtpClientConfig(); var smtpSettings = new SmtpSection() { DeliveryMethod = smtpDeliveryMethod, Network = { EnableSsl = enableSsl } }; ChangeSmtpConfigFile(smtpSettings); smtpConfig.ReadSmtpConfigurationFromConfigFile(); Assert.AreEqual(smtpDeliveryMethod == SmtpDeliveryMethod.Network ? MessageOutput.SmtpServer : smtpDeliveryMethod == SmtpDeliveryMethod.PickupDirectoryFromIis ? MessageOutput.PickupDirectoryFromIis : smtpDeliveryMethod == SmtpDeliveryMethod.SpecifiedPickupDirectory ? MessageOutput.Directory : MessageOutput.None, smtpConfig.MessageOutput); Assert.AreEqual(enableSsl ? MailKit.Security.SecureSocketOptions.Auto : MailKit.Security.SecureSocketOptions.None, smtpConfig.SecureSocketOptions); }
public void SendMailWithSendFailure() { SmtpClientConfig usedClientConfig = null; Exception sendFailure = null; void OnSendFailure(object sender, MailSenderSendFailureEventArgs args) { lock (_locker) { sendFailure = args.Error; usedClientConfig = args.SmtpClientConfig; } } _settings.SenderConfig.SmtpClientConfig[0].SmtpPort++; // set wrong server port, so that backup config should be taken _settings.SenderConfig.SmtpClientConfig[1].SmtpPort++; // set wrong server port, so that send will fail Assert.Catch(() => SendMail(onSendFailure: OnSendFailure)); Assert.AreEqual(_settings.SenderConfig.SmtpClientConfig[1].Name, usedClientConfig.Name); Assert.AreEqual(0, _server.ReceivedEmailCount); }