예제 #1
0
        public async Task SendLocalEmail()
        {
            var filename = Path.Combine(Path.GetTempPath(), EmailFile);

            if (File.Exists(filename))
            {
                File.Delete(filename);
            }

            Assert.IsFalse(File.Exists(filename));
            var client = new SmtpClient(LocalHost, 1030)
            {
                Credentials = new System.Net.NetworkCredential("mail", "pass")
            };
            var session = new SmtpSessionState {
                SenderAddress = SenderEmail
            };

            session.Recipients.Add(RecipientEmail);
            session.DataBuffer.AddRange(System.Text.Encoding.ASCII.GetBytes("HH\r\n"));

            await client.SendMailAsync(session);

            await Task.Delay(100);

            Assert.IsTrue(File.Exists(filename));

            var smtpMock = Json.Deserialize <SmtpMock>(File.ReadAllText(filename));

            Assert.IsNotNull(smtpMock);

            Assert.AreEqual(SenderEmail, smtpMock.Envelope.MailFrom.Address);
            Assert.AreEqual(RecipientEmail, smtpMock.Envelope.RcptTo.First().Address);
        }
예제 #2
0
        public async Task CancelSendEmail()
        {
            var filename = Path.Combine(Path.GetTempPath(), EmailFile);

            if (File.Exists(filename))
            {
                File.Delete(filename);
            }

            Assert.IsFalse(File.Exists(filename));
            var cts     = new CancellationTokenSource();
            var email   = new SmtpClient(LocalHost, 1030);
            var session = new SmtpSessionState {
                SenderAddress = SenderEmail
            };

            session.Recipients.Add(RecipientEmail);
            session.DataBuffer.AddRange(new byte[] { 0x48, 0x48, 0x0A, 0x0C });

#pragma warning disable 4014
            email.SendMailAsync(session, cancellationToken: cts.Token);
#pragma warning restore 4014
            cts.Cancel();
            await Task.Delay(100);

            Assert.IsFalse(File.Exists(filename));
        }
예제 #3
0
        public async Task CancelSendEmail()
        {
            if (Environment.GetEnvironmentVariable("APPVEYOR") == "True")
            {
                Assert.Inconclusive("Can not test in AppVeyor");
            }

            var filename = Path.Combine(Path.GetTempPath(), EmailFile);

            if (File.Exists(filename))
            {
                File.Delete(filename);
            }

            Assert.IsFalse(File.Exists(filename));
            var cts     = new CancellationTokenSource();
            var email   = new SmtpClient("localhost", 1030);
            var session = new SmtpSessionState {
                SenderAddress = SenderEmail
            };

            session.Recipients.Add(RecipientEmail);
            session.DataBuffer.AddRange(new byte[] { 0x48, 0x48, 0x0A, 0x0C });

#pragma warning disable 4014
            email.SendMailAsync(session, ct: cts.Token);
#pragma warning restore 4014
            cts.Cancel();
            await Task.Delay(100);

            Assert.IsFalse(File.Exists(filename));
        }
예제 #4
0
        public async Task SendLocalEmail()
        {
            var filename = Path.Combine(Path.GetTempPath(), EmailFile);

            if (File.Exists(filename))
            {
                File.Delete(filename);
            }

            Assert.IsFalse(File.Exists(filename));
            var email   = new SmtpClient(LocalHost, 1030);
            var session = new SmtpSessionState {
                SenderAddress = SenderEmail
            };

            session.Recipients.Add(RecipientEmail);
            session.DataBuffer.AddRange(new byte[] { 0x48, 0x48, 0x0A, 0x0C });

            await email.SendMailAsync(session);

            await Task.Delay(100);

            Assert.IsTrue(File.Exists(filename));

            var smtpMock = Json.Deserialize <SmtpMock>(File.ReadAllText(filename));

            Assert.IsNotNull(smtpMock);

            Assert.AreEqual(SenderEmail, smtpMock.Envelope.From.Address);
            Assert.AreEqual(RecipientEmail, smtpMock.Envelope.To.First().Address);

            Assert.AreEqual("hh", smtpMock.Headers.First().Key);
        }
예제 #5
0
        public void WithSmtpState_CloneProperly()
        {
            var sampleBuffer = System.Text.Encoding.UTF8.GetBytes("HOLA");
            var source       = new SmtpSessionState();

            source.DataBuffer.AddRange(sampleBuffer);

            var target = source.DeepClone();

            Assert.AreEqual(source.DataBuffer.Count, target.DataBuffer.Count);
            source.ResetEmail();

            Assert.AreEqual(0, source.DataBuffer.Count);
            Assert.AreEqual(sampleBuffer.Length, target.DataBuffer.Count);
        }
예제 #6
0
        public async Task SendLocalEmail()
        {
            if (Environment.GetEnvironmentVariable("APPVEYOR") == "True")
            {
                Assert.Inconclusive("Can not test in AppVeyor");
            }

            var filename = Path.Combine(Path.GetTempPath(), EmailFile);

            if (File.Exists(filename))
            {
                File.Delete(filename);
            }

            Assert.IsFalse(File.Exists(filename));
            var email   = new SmtpClient("localhost", 1030);
            var session = new SmtpSessionState {
                SenderAddress = SenderEmail
            };

            session.Recipients.Add(RecipientEmail);
            session.DataBuffer.AddRange(new byte[] { 0x48, 0x48, 0x0A, 0x0C });

            await email.SendMailAsync(session);

            await Task.Delay(100);

            Assert.IsTrue(File.Exists(filename));

            var smtpMock = Json.Deserialize <SmtpMock>(File.ReadAllText(filename));

            Assert.IsNotNull(smtpMock);

            Assert.AreEqual(SenderEmail, smtpMock.envelope.from.address);
            Assert.AreEqual(RecipientEmail, smtpMock.envelope.to.First().address);

            Assert.AreEqual("hh", smtpMock.headers.First().Key);
        }