Отправка почты через прокси HTTP

После нескольких дней возни, ломания и исправления я нашел решение, которое сработало для меня.

Как было предложено выше, я передал свою строку из функции заполнения данных в действие, а затем в представление с использованием модели. Однако это было не так просто. функция createchart ожидает объект json (мне потребовалось время, чтобы понять, в чем проблема). передача строки как есть переменной в частичном представлении сделала много ужасных вещей с двойными кавычками и одинарными кавычками, которые были внутри строки. В конце концов я понял, что строку нужно передавать как json, чтобы правильно видеть цитаты в представлении.

Как только это было рассортировано, я просто убирал все, что я сломал, пытаясь выяснить проблему.

Фрагмент частичного просмотра

 var string = JSON.parse(@(Html.Raw(Json.Encode(Model.flare))));

    //data = flare;

    createchart(string);

Фрагмент контроллера

public ActionResult RefreshView(int id)
    {

        CWDataSetsEntities aCWDatasetEntity = new CWDataSetsEntities();

        int intCountryID = Convert.ToInt32(id);

        CWCountriesISOandCoordinates aCWCountry = new CWCountriesISOandCoordinates();

        aCWCountry = (from x in aCWDatasetEntity.CWCountriesISOandCoordinates where x.index == intCountryID select x).SingleOrDefault();
        string Country = aCWCountry.Country_Name;

        Models.PartitionViewModels Data = sb_admin_2.Web.ContentBuilder.PartitionBuilder.TradeVisual("Export", Country, "X2015");

        //sb_admin_2.Web.Models.PartitionViewModels.Javascript = Data;
        ViewBag.Data = Data;

        return PartialView("DataPartition", Data);
    }

Сценарий события

<script>
$(function () {
    $("#Partitionbox").change(function (e) {
        var val = $(this).val();
        $("#DataPart").remove();
        $('#hint').remove();
        $('#footer').remove();
        $("#TestTarget").load("/Home/RefreshView/" + val);
                    });
});
7
задан Ben Collins 3 October 2013 в 14:24
поделиться

3 ответа

I understand that you want to use the browsers default settings, i would also like an answer for that.

Meanwhile, you could do it manually.

    MailAddress from = new MailAddress("from@mailserver.com");
    MailAddress to = new MailAddress("to@mailserver.com");

    MailMessage mm = new MailMessage(from, to);
    mm.Subject = "Subject"
    mm.Body = "Body";

    SmtpClient client = new SmtpClient("proxy.mailserver.com", 8080);
    client.Credentials = new System.Net.NetworkCredential("from@mailserver.com", "password");

    client.Send(mm);
4
ответ дан 7 December 2019 в 01:25
поделиться

Http-прокси контролируют HTTP-трафик, у них редко что-то есть вообще делать с SMTP. Я никогда раньше не слышал о проксировании SMTP, ведь сам SMTP внутренне поддерживает цепочку «прокси» к SMTP-серверу назначения.

6
ответ дан 7 December 2019 в 01:25
поделиться

If the only access you have to the internet is through HTTP, then pretty much the only way you'll be able to do this is by setting up a VPS (or equiv) with SSH on port 443 and using corkscrew (or putty) to tunnel ssh through. From there it is a simple matter to forward smtp traffic over your ssh tunnel.

Be aware that you may be violating the companies computing policy if you do this.

0
ответ дан 7 December 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: