/// <summary> /// Send information about contact /// </summary> /// <param name="aPerson">A person who contacts</param> /// <param name="resumeFiles">Resume files</param> /// <param name="codeExampleFiles">Code example files</param> /// <param name="credentials">Credentials</param> /// <param name="recipients">Recipient collection</param> /// <returns>true, if successfully sending contact information, false otherwise</returns> public async Task <bool> ContactUsAsync(ContactPersonViewModel aPerson, IEnumerable <UploadedFileInfo> resumeFiles, IEnumerable <UploadedFileInfo> codeExampleFiles, ICredentials credentials, IRecipientCollection recipients) { var smtpClient = new SmtpClient(credentials.SmtpServerName, credentials.SmtpPort) { EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(credentials.MailLogin, credentials.MailPassword) }; string messageBody = aPerson.GenerateMessageBody(); var fromAddr = new MailAddress(credentials.FromAddress, credentials.FromDisplayName, _DefaultEncoding); var emailRecipients = recipients.Recipients; var mailAddresses = emailRecipients.Select( recipient => new MailAddress(recipient.ToAddress, recipient.ToDisplayName, _DefaultEncoding)).ToList(); foreach (MailAddress toAddr in mailAddresses) { using (var message = new MailMessage(fromAddr, toAddr) { Subject = string.Format("Resume: {0} {1}", aPerson.FirstName, aPerson.LastName), Body = messageBody, DeliveryNotificationOptions = DeliveryNotificationOptions.None, SubjectEncoding = _DefaultEncoding }) { foreach (Attachment attachment in GenerateAttachments(resumeFiles, codeExampleFiles)) { message.Attachments.Add(attachment); } try { await smtpClient.SendMailAsync(message).ConfigureAwait(false); } catch (InvalidOperationException invalidOperationEx) { throw new SendingMailException(Resources.ErrorSendingEmail, invalidOperationEx); } catch (SmtpFailedRecipientException smtpFailedRecipientEx) { throw new SendingMailException(Resources.ErrorSendingEmail, smtpFailedRecipientEx); } catch (SmtpException smtpEx) { throw new SendingMailException(Resources.ErrorSendingEmail, smtpEx); } } } return(true); }
public ContactUsController(IContactSender contactSender, ICredentials credentials, IRecipientCollection recipients, IResumeManagerRepository resumeManager) { _contactSender = contactSender; _credentials = credentials; _recipients = recipients; _resumeManager = resumeManager; }
public OurContactsController(IRecipientCollection recipients) { _recipients = recipients; }