public bool Send(MessageDomainModel model) { var builder = new BodyBuilder { TextBody = model.BodyPlainText, HtmlBody = model.BodyHtmlText }; if (!string.IsNullOrEmpty(model.ImagePath)) { builder.Attachments.Add(model.ImagePath); } var message = new MimeMessage(); message.From.Add( new MailboxAddress( model.SenderInfoFullName, model.FromEmail)); message.To.Add( new MailboxAddress( model.RecipientInfoFullName, model.ToEmail)); message.Subject = model.Subject; message.Body = builder.ToMessageBody(); using (var client = new SmtpClient()) { // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS) //client.ServerCertificateValidationCallback = (object s, X509Certificate c, X509Chain h, SslPolicyErrors e) => true; client.Connect(Localhost, SmtpDefaultPort, false); // Note: since we don't have an OAuth2 token, disable // the XOAUTH2 authentication mechanism. client.AuthenticationMechanisms.Remove("XOAUTH2"); // Note: only needed if the SMTP server requires authentication client.Authenticate(_login, _password); try { client.Send(message); } catch (Exception e) { Debug.WriteLine(e); return(false); } finally { client.Disconnect(true); } } return(true); }
/// <summary> /// Adds the message. /// </summary> /// <returns>int</returns> public int AddMessage(MessageDomainModel message) { try { return(_messageRepository.Add(_mapper.Map <MessageEntity>(message))); } catch (NotImplementedException) { return(0); } }
public void Get_Message(MessageDomainModel message) { using (var scope = new DefaultScope()) { // Arrange scope.MapperMock.Setup(x => x.Map <MessageApiModel>(It.IsAny <MessageDomainModel>())); scope.HelloWorldManagerMock.Setup(x => x.GetMessage()).Returns(message); // Act var result = scope.InstanceUnderTest.Message(); // Assert Assert.IsType <OkObjectResult>(result); } }
public void GetMessage(AppSettingsConfig appSettings, MessageDomainModel message, string expected) { using (var scope = new DefaultScope()) { // Arrange scope.AppSettingsMock.Setup(x => x.Value).Returns(appSettings); scope.MapperMock.Setup(x => x.Map <MessageDomainModel>(It.IsAny <AppSettingsConfig>())).Returns(message); // Act var result = scope.InstanceUnderTest.GetMessage(); // Assert Assert.Equal(expected, result.Message); } }
private void RegisterControlsEvents() { passTextBox.TextChanged += (sender, args) => capsLockAlertLabel.Text = IsKeyLocked(Keys.CapsLock) ? "The Caps Lock Key is ON!" : string.Empty; messagesListView.Click += (sender, args) => { int selectedIndex = ((ListView)sender).SelectedItems[0].Index; MessageDTO dto = _messageDTOs[selectedIndex]; pop3FromTextBox.Text = dto.FromEmail; pop3SenderFullNameTextBox.Text = dto.SenderInfoFullName; pop3SubjectTextBox.Text = dto.Subject; pop3BodyRichTextBox.Text = dto.BodyPlainText; }; deleteEmailButton.Click += (sender, args) => { Task.Run(() => { var mailAgentClient = new EmailClient(pop3LoginTextBox.Text, pop3PassTextBox.Text); string messageUID = default(string); if (messagesListView.InvokeRequired) { messagesListView.Invoke((MethodInvoker)(() => { if (messagesListView.Items.Count == 0) { return; } messageUID = messagesListView .Items[messagesListView.SelectedIndices[0]] .SubItems[2] .Text; })); } else { if (messagesListView.Items.Count == 0) { return; } messageUID = messagesListView .Items[messagesListView.SelectedIndices[0]] .SubItems[2] .Text; } mailAgentClient.DeleteMessageById(messageUID); if (messagesListView.Items.Count > 0) { messagesListView.Items.RemoveAt(messagesListView.SelectedIndices[0]); } }); }; attachImageButton.Click += (sender, args) => { using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.Filter = Resources.ImageExtensionsFilter; _imagePath = openFileDialog.ShowDialog() == DialogResult.OK ? openFileDialog.FileName : string.Empty; } }; sendButton.Click += (sender, args) => { MessageDomainModel messageModel = new MessageDomainModel { FromEmail = fromTextBox.Text, ToEmail = toTextBox.Text, Subject = subjectTextBox.Text, BodyHtmlText = containsHtmlCheckBox.Checked ? bodyRichTextBox.Text : string.Empty, BodyPlainText = containsHtmlCheckBox.Checked ? Uglify.HtmlToText(bodyRichTextBox.Text).Code : bodyRichTextBox.Text, SenderInfoFullName = senderFullNameTextBox.Text, RecipientInfoFullName = recipientFullNameTextBox.Text, ImagePath = _imagePath }; _imagePath = default(string); var mailAgentClient = new EmailClient(loginTextBox.Text, passTextBox.Text); try { Task.Run(() => mailAgentClient.Send(messageModel)); } catch (Exception e) { Debug.WriteLine(e); MessageBox.Show("Some errors occurred while sending your message. Sorry about that."); } }; authenticationButton.Click += (sender, args) => { Task.Run(() => { var mailAgentClient = new EmailClient(pop3LoginTextBox.Text, pop3PassTextBox.Text); _messageDTOs = mailAgentClient.GetAllMessages(); if (messagesListView.InvokeRequired) { messagesListView.Invoke((MethodInvoker)(() => { messagesListView.BeginUpdate(); messagesListView.Items.Clear(); for (int i = 0; i < _messageDTOs.Count; i++) { var item = new ListViewItem($"{i + 1}"); item.SubItems.Add(_messageDTOs[i].Subject); item.SubItems.Add(_messageDTOs[i].Id); messagesListView.Items.Add(item); } messagesListView.EndUpdate(); })); } else { messagesListView.BeginUpdate(); messagesListView.Items.Clear(); for (int i = 0; i < _messageDTOs.Count; i++) { var item = new ListViewItem($"{i + 1}"); item.SubItems.Add(_messageDTOs[i].Subject); item.SubItems.Add(_messageDTOs[i].Id); messagesListView.Items.Add(item); } messagesListView.EndUpdate(); } }); }; viewAttachmentButton.Click += (sender, args) => { Task.Run(() => { var mailAgentClient = new EmailClient(pop3LoginTextBox.Text, pop3PassTextBox.Text); int selectedIndex = default(int); string messageUID = default(string); if (messagesListView.InvokeRequired) { messagesListView.Invoke((MethodInvoker)(() => { selectedIndex = messagesListView.SelectedItems[0].Index; messageUID = messagesListView .Items[selectedIndex] .SubItems[2] .Text; })); } else { selectedIndex = messagesListView.SelectedItems[0].Index; messageUID = messagesListView .Items[selectedIndex] .SubItems[2] .Text; } try { string imagePath = mailAgentClient.GetImageAttachmentByMessageUID(messageUID); Process.Start(imagePath); } catch (Exception) { MessageBox.Show("There is no attachment"); } }); }; }