检查从哪个 URL 发送了 SMTP 邮件

Check which URL a SMTP message was sent from

我正在为我的公司建立一个网站,我在三个不同的页面上有联系表,URLs 不同。

有谁知道如何发送当前的URL发送自?

假设我在 http://localhost:59379/en/about/ 上,我从这个 URL 发送消息,我想把这个 URL 发送到我的电子邮件。

喜欢:

Message Send from:{URL} in my Mailbox.

我正在使用 SMTP

public void SendContactMail(string from, string name, string phone, string message)
{
    try
    {
        var date = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
        var newMail = new MailMessage { From = new MailAddress("HEY@LIVE.SE") };
        newMail.To.Add(new MailAddress("hello@live.se"));
        newMail.Subject = $"Contact {@date} form mail from: {@from}";
        newMail.IsBodyHtml = true;

        var body = $@"
        {name} har fyllt i kontaktformuläret på ... <br/>
        E-post: {@from}<br/> 
        Telefon:{phone} <br/>
        Meddelande:{message}";

        var view = AlternateView.CreateAlternateViewFromString(body, null, "text/html");
        newMail.AlternateViews.Add(view);

        Client.Send(newMail);
    }
    catch (Exception)
    {
        //some random stuff here.
    }
}

HTML形式:

<div class="col-xl-12">
    <p class="text-white contact-us-title">Kontakta gärna oss!</p>
    <input type="text" required class="form-control fc-contact" style="width:15rem;" placeholder="Namn" name="Name" aria-label="Recipient's username" aria-describedby="basic-addon2">
    <br />
    <input type="text" required class="form-control fc-contact" style="width:15rem;" placeholder="E-post" name="Email" aria-label="E-post" aria-describedby="basic-addon2">
    <br />
    <input type="text" required class="form-control fc-contact" style="width:15rem;" placeholder="Tele" name="Phone" aria-label="Tele" aria-describedby="basic-addon2">
    <br />
    <textarea class="form-control fc-contact" style="height:7rem; width:15rem; " placeholder="Meddelande" name="Message" aria-label="Message" aria-describedby="basic-addon2"></textarea>
    <br />
    <br />
    <button type="submit" class="btn btn-success mb-5"><span>Skicka</span></button>
</div>

您需要以某种方式将包含电子邮件表单的页面的 URL 传递给发送电子邮件的方法,以便它可以包含在电子邮件中。

现在问题很可能是您正在向控制器上的操作发布,然后 Request.Url 将只是您正在向其发布的控制器操作的 URL -不是你想要的。

所以 .. 你可以做的是包括 "referrer" 页面的 URL(表单所在的页面 - 这是你想要的页面 URL跟踪)作为用户输入字段旁边的隐藏表单字段,然后只需在您的控制器中处理它 POST 操作并将其作为正在发送的电子邮件消息的一部分。