Commit: Contact Honeypot
This commit is contained in:
@@ -3,6 +3,7 @@ using System.Net;
|
||||
using clivelancaster.Models;
|
||||
using MailKit.Net.Smtp;
|
||||
using MimeKit;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace clivelancaster.Controllers
|
||||
{
|
||||
@@ -31,11 +32,18 @@ namespace clivelancaster.Controllers
|
||||
|
||||
var bodyBuilder = new BodyBuilder
|
||||
{
|
||||
TextBody = $"Name: {model.Name}\nEmail: {model.Email}\n\nSubject: {model.Subject}\n\nMessage:\n{model.Message}"
|
||||
TextBody = $"Name: {model.NameIncognito}\nEmail: {model.Email}\n\nSubject: {model.SubjectIncognito}\n\nMessage:\n{model.MessageIncognito}"
|
||||
};
|
||||
|
||||
message.Body = bodyBuilder.ToMessageBody();
|
||||
|
||||
// Honeypot Check
|
||||
if (model.Name != null | model.Subject != null | model.Message != null)
|
||||
{
|
||||
ViewBag.Message = "Message sent successfully!";
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var client = new SmtpClient())
|
||||
@@ -58,6 +66,7 @@ namespace clivelancaster.Controllers
|
||||
{
|
||||
ViewBag.Message = "Error sending message.";
|
||||
}
|
||||
}
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
@@ -4,21 +4,27 @@ namespace clivelancaster.Models
|
||||
{
|
||||
public class ContactFormModel
|
||||
{
|
||||
[Required]
|
||||
[Display(Name = "Your Name")]
|
||||
public required string Name { get; set; }
|
||||
public string? Name { get; set; }
|
||||
|
||||
[Required]
|
||||
[EmailAddress]
|
||||
[Display(Name = "Your Email")]
|
||||
public required string Email { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Subject")]
|
||||
public required string Subject { get; set; }
|
||||
public string? Subject { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Message")]
|
||||
public required string Message { get; set; }
|
||||
public string? Message { get; set; }
|
||||
|
||||
[Display(Name = "Your Name")]
|
||||
public string? NameIncognito { get; set; }
|
||||
|
||||
[Display(Name = "Subject")]
|
||||
public string? SubjectIncognito { get; set; }
|
||||
|
||||
[Display(Name = "Message")]
|
||||
public string? MessageIncognito { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,9 +19,10 @@
|
||||
|
||||
<form asp-action="Index" method="post">
|
||||
<div class="form-group">
|
||||
<label asp-for="Name"></label>
|
||||
<input asp-for="Name" class="form-control" />
|
||||
<span asp-validation-for="Name" class="text-danger"></span>
|
||||
<label asp-for="Name" class="incognito-field"></label>
|
||||
<input asp-for="Name" class="form-control incognito-field" autocomplete="off" tabindex="-1" />
|
||||
<label asp-for="NameIncognito"></label>
|
||||
<input asp-for="NameIncognito" class="form-control" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Email"></label>
|
||||
@@ -29,14 +30,16 @@
|
||||
<span asp-validation-for="Email" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Subject"></label>
|
||||
<input asp-for="Subject" class="form-control" />
|
||||
<span asp-validation-for="Subject" class="text-danger"></span>
|
||||
<label asp-for="Subject" class="incognito-field"></label>
|
||||
<input asp-for="Subject" class="form-control incognito-field" autocomplete="off" tabindex="-1" />
|
||||
<label asp-for="SubjectIncognito"></label>
|
||||
<input asp-for="SubjectIncognito" class="form-control" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Message"></label>
|
||||
<textarea asp-for="Message" class="form-control"></textarea>
|
||||
<span asp-validation-for="Message" class="text-danger"></span>
|
||||
<label asp-for="Message" class="incognito-field"></label>
|
||||
<textarea asp-for="Message" class="form-control incognito-field" autocomplete="off" tabindex="-1"></textarea>
|
||||
<label asp-for="MessageIncognito"></label>
|
||||
<textarea asp-for="MessageIncognito" class="form-control"></textarea>
|
||||
</div>
|
||||
<div class="p-2"></div>
|
||||
<button type="submit" class="btn btn-primary">Send Message</button>
|
||||
|
||||
@@ -20,6 +20,16 @@
|
||||
border-color: #0473b3;
|
||||
}
|
||||
|
||||
.incognito-field {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 0;
|
||||
width: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
: root {
|
||||
--current-background: var(--dark-background);
|
||||
|
||||
Reference in New Issue
Block a user