public IHttpActionResult Email(EmailFriendRequest request) { var siteRoot = SiteRootContext.Item; // VERIFY CAPTCHA if (!RecaptchaService.Verify(request.RecaptchaResponse)) { return(Ok(new { success = false })); } if (string.IsNullOrWhiteSpace(request.RecipientEmail) || string.IsNullOrWhiteSpace(request.SenderEmail) || string.IsNullOrWhiteSpace(request.SenderName) || string.IsNullOrWhiteSpace(request.ArticleNumber)) { _logger.Warn($"Field is null"); return(Ok(new { success = false })); } //var emailFrom = GetValue(siteRoot?.Email_From_Address); var emailFrom = string.Format("{0} <{1}>", siteRoot.Publication_Name, GetValue(siteRoot?.Email_From_Address)); var allEmails = request.RecipientEmail.Split(';'); var result = true; var emailBody = GetEmailBody(request.SenderEmail, request.SenderName, request.ArticleNumber, request.PersonalMessage); foreach (var eachEmail in allEmails) { string specificEmailBody = emailBody .ReplacePatternCaseInsensitive("#friend_name#", eachEmail) .ReplacePatternCaseInsensitive("#RECIPIENT_EMAIL#", eachEmail); var friendEmail = new Email { To = eachEmail, Subject = request.ArticleTitle, From = emailFrom, Body = specificEmailBody, IsBodyHtml = true }; var isEmailSent = EmailSender.Send(friendEmail); if (!isEmailSent) { _logger.Warn($"Email sender failed"); result = false; } } return(Ok(new { success = result })); }
/// <summary> /// <para>Performs the Listing Method: /// Send an email regarding an auction to a friend. /// </para><para> /// Serializes the given EmailFriendRequest into xml. /// Creates a query string using the listingId provided . /// </para><para> /// All the parameters are required. /// </para> /// REQUIRES AUTHENTICATION. /// </summary> /// <param name="email">The object that will be serialized into xml and then sent in a POST message.</param> /// <param name="listingId">The id of the listing you want to email about.</param> /// <returns>XDocument.</returns> public XDocument EmailFriend(EmailFriendRequest email, string listingId) { var query = String.Format(Constants.Culture, "{0}/{1}/emailfriend{2}", Constants.LISTINGS, listingId, Constants.XML); return _connection.Post(email, query); }
/// <summary> /// <para>Performs the Listing Method: /// Send an email regarding an auction to a friend. /// </para><para> /// Serializes the given EmailFriendRequest into xml. /// Creates a query string using the listingId provided . /// </para><para> /// All the parameters are required. /// </para> /// REQUIRES AUTHENTICATION. /// </summary> /// <param name="email">The object that will be serialized into xml and then sent in a POST message.</param> /// <param name="listingId">The id of the listing you want to email about.</param> /// <returns>XDocument.</returns> public XDocument EmailFriend(EmailFriendRequest email, string listingId) { if (_listing == null) { _listing = new ListingMethods(_connection); } return _listing.EmailFriend(email, listingId); }
/// <summary> /// <para>Performs the Listing Method: /// Send an email regarding an auction to a friend. /// </para><para> /// Serializes the given EmailFriendRequest into xml. /// Creates a query string using the listingId provided . /// </para><para> /// All the parameters are required. /// </para> /// REQUIRES AUTHENTICATION. /// </summary> /// <param name="email">The object that will be serialized into xml and then sent in a POST message.</param> /// <param name="listingId">The id of the listing you want to email about.</param> /// <returns>XDocument.</returns> public XDocument EmailFriend(EmailFriendRequest email, string listingId) { var query = String.Format(Constants.Culture, "{0}/{1}/emailfriend{2}", Constants.LISTINGS, listingId, Constants.XML); return(_connection.Post(email, query)); }