public void ReportAbuse(ReportPackageRequest request) { string subject = "[{GalleryOwnerName}] Support Request for '{Id}' version {Version} (Reason: {Reason})"; subject = request.FillIn(subject, Config); const string bodyTemplate = @" **Email:** {Name} ({Address}) **Signature:** {Signature} **Package:** {Id} {PackageUrl} **Version:** {Version} {VersionUrl} {User} **Reason:** {Reason} **Has the package owner been contacted?:** {AlreadyContactedOwners} **Message:** {Message} "; var body = new StringBuilder(); body.Append(request.FillIn(bodyTemplate, Config)); body.AppendFormat(CultureInfo.InvariantCulture, @" *Message sent from {0}*", Config.GalleryOwner.DisplayName); using (var mailMessage = new MailMessage()) { mailMessage.Subject = subject; mailMessage.Body = body.ToString(); mailMessage.From = Config.GalleryOwner; mailMessage.ReplyToList.Add(request.FromAddress); mailMessage.To.Add(Config.GalleryOwner); if (request.CopySender) { // Normally we use a second email to copy the sender to avoid disclosing the receiver's address // but here, the receiver is the gallery operators who already disclose their address // CCing helps to create a thread of email that can be augmented by the sending user mailMessage.CC.Add(request.FromAddress); } SendMessage(mailMessage); } }
public void ReportAbuse(ReportPackageRequest request) { string subject = "[{GalleryOwnerName}] Support Request for '{Id}' version {Version} (Reason: {Reason})"; subject = request.FillIn(subject, _config); const string bodyTemplate = @" **Email:** {Name} ({Address}) **Package:** {Id} {PackageUrl} **Version:** {Version} {VersionUrl} **Owners:** {OwnerList} **User:** {Username} ({UserAddress}) {UserUrl} **Reason:** {Reason} **Has the package owner been contacted?:** {AlreadyContactedOwners} **Message:** {Message} "; var body = new StringBuilder(""); body.Append(request.FillIn(bodyTemplate, _config)); body.AppendFormat(CultureInfo.InvariantCulture, @" *Message sent from {0}*", _config.GalleryOwnerName); using (var mailMessage = new MailMessage()) { mailMessage.Subject = subject; mailMessage.Body = body.ToString(); mailMessage.From = new MailAddress(_config.GalleryOwnerEmail, _config.GalleryOwnerName); mailMessage.ReplyToList.Add(request.FromAddress); mailMessage.To.Add(_config.GalleryOwnerEmail); SendMessage(mailMessage); } }