Проверьте, с какого URL отправлено SMTP-сообщение - PullRequest
0 голосов
/ 17 октября 2018

Я создаю веб-сайт для своей компании, и у меня есть контактная форма на трех разных страницах с разными URL-адресами.

Кто-нибудь знает, как можно отправить текущий URL-адрес, отправленный с?

Скажите, что я на http://localhost:59379/en/about/, и я отправляю сообщение с этого URL, я хочу, чтобы этот URL отправили на мою электронную почту.

Мне нравится:

Сообщение отправлено с: {URL} в моем почтовом ящике.

Я использую 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>

1 Ответ

0 голосов
/ 31 октября 2018

Вам нужно как-то передать URL-адрес страницы, содержащей форму электронной почты, методу, отправляющему электронную почту, чтобы его можно было включить в сообщение электронной почты.

Скорее всего, проблема возникла прямо сейчас, когда вы 'повторная публикация действия на контроллере, и тогда Request.Url будет просто URL-адресом действия контроллера, на которое вы отправляете, - это не то, что вам нужно.

Итак ... что вы можете сделать, этовключите URL-адрес страницы "referrer" (страницы, на которой расположена форма, а именно URL-адрес страницы, который вы хотите отслеживать) в качестве скрытого поля формы рядом с полями ввода пользователя, а затем просто обработайте его в действии POST вашего контроллераи включите его как часть отправляемого электронного письма.

...