ASP.Net MVC html olarak e-mail gönderme- C# ile Mail Gönderme

Herkes  Yazar Herkes Yazar

22 Ocak 2017 Yazılım Dilleri (125) (472)

Paylaşmak güzeldir. Lütfen sizde paylaşın...


ASP.Net MVC html olarak e-mail gönderme- C# ile Mail Gönderme

MailController :

using eticaret.Functions;
using eticaret.Models;
using RazorEngine.Templating;
using System;
using System.Web.Helpers;
using System.Web.Mvc;

namespace eticaret.Controllers
{
    public class MailController : BaseController
    {
        // GET: mail
        [AllowAnonymous]
        public ActionResult MailGonder()
        {
            return PartialView();

        }
        [HttpPost]
        [AllowAnonymous]
        public ActionResult MailGonder(Mail model, string returnUrl)
        {
            #region Açıklama
            //SmtpServer = Mailin gönderileceği SMTP adresi belirlenir.//"smtp.gmail.com"
            //UserName = Maili üzerinden göndereceğimiz mail adresinin kullanıcı adı.
            //Password = Maili üzerinden göndereceğimiz mail adresinin şifresi.
            //EnbaleSsl = Gönderilecek mail de HTML taglarının okunup okunmayacağı belirlenir.
            //SmtpPort = Smtp port numarası.
            //Send = Mail gönderme metodu.
            #endregion
            if (string.IsNullOrEmpty(returnUrl)) returnUrl = "MailGonder";
            if (!ModelState.IsValid)
            {
                return Json(new { Success = false, RedirectUrl = returnUrl, Message = MyLanguage.Lan("Lütfen zorunlu alanları doldurun.") }, JsonRequestBehavior.AllowGet);
            }
            try
            {

                string templateFilePath = System.Web.HttpContext.Current.Server.MapPath("~/Content/emailtemlate/emailtemplate1.cshtml");
                var templateAsString = System.IO.File.ReadAllText(templateFilePath);

                var AliciMailadres = "ahmet.turkoz@gmail.com";
                string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/') + "/";

                var emailModel = new e_mail_Template_1_model
                    {
                        siteadresi = baseUrl,
                        GonderenAdi = model.GonderenAdi,
                        GondericiMailadres = model.GondericiMailadres,
                        PhoneNumber=model.PhoneNumber,
                        Konu = model.Konu,
                        Mailicerik = model.Mailicerik,
                        mailtarihi = DateTime.Now.ToString("dd/mm/yyyy h:m:s tt"),
                    };

                var body = RazorEngine.Engine.Razor.RunCompile(templateAsString, "templateKey", typeof(e_mail_Template_1_model), emailModel);

                WebMail.SmtpServer = Ayarlar.Ayar("WebMail_SmtpServer");//"smtp.gmail.com"
                WebMail.UserName = Ayarlar.Ayar("WebMail_UserName");//email adrersi
                WebMail.Password = Ayarlar.Ayar("WebMail_Password");//parola
                WebMail.EnableSsl = true;//Ayarlar.Ayar("WebMail_EnableSsl");
                WebMail.SmtpPort = 587;//Ayarlar.Ayar("WebMail_SmtpPort");
                WebMail.Send(AliciMailadres, model.Konu, body, model.GondericiMailadres);
                ViewBag.Message = MyLanguage.Lan("Mailiniz gönderilmiştir.");
                //return PartialView();
                return Json(new { Success = true, RedirectUrl = returnUrl, Message = MyLanguage.Lan("Mailiniz gönderilmiştir.") }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception)
            {
                ViewBag.Message = MyLanguage.Lan("Mailiniz gönderilmiştir.");
                //return PartialView();
                return Json(new { Success = false, RedirectUrl = returnUrl, Message = MyLanguage.Lan("Mail gönderiminde Hata!Daha sonra tekrar deneyin.") }, JsonRequestBehavior.AllowGet);
                //throw;
            }
        }
       
    }
}

Contact View:

@{
    ViewBag.Title = Html.Language("Bizi ziyaret et");
}
<hr class="soften">
<h1>@ViewBag.Title</h1>
@*<h2>@ViewBag.Message</h2>*@
<hr class="soften" />
<div class="row">
    <div class="span4">
        <h4>@Html.Language("iletişim Detayı")</h4>
        <p>
            18 Fresno,<br /> CA 93727, USA
            <br /><br />
            info@bootsshop.com<br />
            Tel 123-456-6780<br />
            Fax 123-456-5679<br />
            web:bootsshop.com
        </p>
    </div>

    <div class="span4">
        <h4>@Html.Language("Çalışma Saatleri")</h4>
        <h5> @Html.Language("Pazartesi") - @Html.Language("Cuma")</h5>
        <p>08:00 - 09:000<br /><br /></p>
        <h5>@Html.Language("Cumartesi")</h5>
        <p>09:00am - 07:00pm<br /><br /></p>
        <h5>@Html.Language("Pazar")</h5>
        <p>12:30- 06:00<br /><br /></p>
    </div>

    <div class="span4">
        @Html.Action("MailGonder", "mail")
    </div>
</div>
<br />

<div class="row">
    <div class="span12">
        <iframe style="width:100%; height:300px; border: 0px" scrolling="no" src=""></iframe>
        <br />
        <small><a href="">>@Html.Language("View Larger Map")</a></small>
    </div>
</div>


@section Scripts {

    <script src="~/Scripts/jquery.maskedinput.min.js.js"></script>
    @Scripts.Render("~/bundles/jqueryval")

    <script>
        $(function () {
            $("#sidebar").hide();
        });
    </script>


    <script type="text/javascript">
        $(document).on('click', '#PhoneNumber', function ()
        {
            $("#PhoneNumber").mask("0(999) 999 99 99");
        })
        function checkChar() {
            var allowedChar = 10;
            var content = document.getElementById("Mailicerik");
            var contLength = content.value.length;
            if (contLength < allowedChar) {
                document.getElementById("iletimesaj").innerHTML = "<span style='color:red;'>Mesajınız çok kısa anlaşılır olması için daha fazla bilgi girmelisiniz..</span>";
                return false;
            } else {
                document.getElementById("iletimesaj").innerHTML = "<span style='color:blue;'hidden></span>";
                return true;
            }
            return false;
        }
        document.getElementById("Mailicerik").onchange = function () {
            var mesajicerik = $("#Mailicerik").val();
            if ((mesajicerik != "" && mesajicerik != null)) {
                checkChar();
            }
            else {
                document.getElementById("iletimesaj").innerHTML = "<span style='color:red;'> Mesajınız çok kısa anlaşılır olması için daha fazla bilgi girmelisiniz..</span>";
            }
            return false;
        }
        $(document).ready(function () {
            $(document).on('click', '#iletigonder', function () {
                var sonuc = checkChar();
                if (sonuc == true) {
                    $('#iletigonder').click(KaydetIslemde);
                    var p_mesajicerik = $("#Mailicerik").val();
                    if (p_mesajicerik == "" || p_mesajicerik == null) {
                        document.getElementById("iletimesaj").innerHTML = "<span style='color:red;'>Mesajınız çok kısa anlaşılır olması için daha fazla bilgi girmelisiniz..</span>";
                    }
                    else {
                        KaydetIslemde();
                        var javamodel = {
                            GonderenAdi: $('#GonderenAdi').val().toString(),
                            GondericiMailadres: $('#GondericiMailadres').val().toString(),
                            Konu: $('#Konu').val().toString(),
                            Mailicerik: $('#Mailicerik').val().toString(),
                            PhoneNumber: $('#PhoneNumber').val().toString(),
                        };
                        $.ajax({
                            async: true,
                            type: "POST",
                            url: '@Url.Action("MailGonder", "Mail")',
                            data: JSON.stringify(javamodel),
                            contentType: 'application/json',
                            dataType: "json",
                            success: function (cevap) {
                                $("#iletimesaj").html(cevap.Message); /* popup'ın içeriğine cevabı yazdırıyoruz */
                                $("#iletimesaj").fadeIn(500); /* popup ı görünür yapıyoruz */
                                $('#iletigonder').text("Mesajı Gönder");
                                if (cevap.Success) {
                                    $('#iletigonder').text("Gönder");
                                    $('#GonderenAdi').val(null);
                                    $('#GondericiMailadres').val(null);
                                    $('#Konu').val(null);
                                    $('#Mailicerik').val(null)
                                }
                            },
                            error: function () {
                                $("#iletimesaj").html("<span class\"glyphicon glyphicon-remove text-warning\"> Üzgünüz mailiniz gönderilemedi!. Daha Sonra Tekrar deneyin..</span>");
                                $('#iletigonder').text("Mesajı Gönder");
                            },
                            beforeSend: function () { },
                            complete: function () {

                            }
                        });
                    }
                } else {
                    document.getElementById("iletimesaj").innerHTML = "<span style='color:red;'>Eksik bilgi: Tüm alanları eksiksiz doldurarak tekrar deneyin..</span>";
                }
            })
            function KaydetIslemde() {
                $('#iletigonder').text(" Mailiniz Gönderiliyor...");
            }
        })


    </script>
}

Mailgonder.cshtml(view)

@model eticaret.Models.Mail

@*@using (Html.BeginForm())*@

@using (Html.BeginForm("MailGonder", "Mail", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
    {

        @Html.AntiForgeryToken()

    <h4>@Html.Language("Bize e-posta gönderin")</h4>
    <form class="form-horizontal">
        <fieldset>
            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            <div class="control-group">
                @Html.EditorFor(model => model.GonderenAdi, new { htmlAttributes = new { @class = "input-xlarge", placeholder = MyLanguage.Lan("adınız") } })
                @Html.ValidationMessageFor(model => model.GonderenAdi, "", new { @class = "text-danger" })
            </div>
            <div class="control-group">

                @Html.EditorFor(model => model.GondericiMailadres, new { htmlAttributes = new { @class = "input-xlarge", placeholder ="email"  } })
                @Html.ValidationMessageFor(model => model.GondericiMailadres, "", new { @class = "text-danger" })

            </div>
            <div class="control-group">
                @Html.EditorFor(model => model.Konu, new { htmlAttributes = new { @class = "input-xlarge", placeholder = @Html.Language("konu") } })
                @Html.ValidationMessageFor(model => model.Konu, "", new { @class = "text-danger" })
            </div>
            <div class="control-group">
                @Html.TextAreaFor(model => model.Mailicerik, new { htmlAttributes = new { @class = "input-xlarge" } })
                @Html.ValidationMessageFor(model => model.Mailicerik, "", new { @class = "text-danger" })
            </div>
            <div class="control-group">
                @Html.TextBoxFor(m => m.PhoneNumber, new { @class = "input-xlarge", placeholder = Html.Language("Contact number") })
                @Html.ValidationMessageFor(model => model.Mailicerik, "", new { @class = "text-danger" })
            </div>
            <h4 class="text-info" id="iletimesaj"></h4>
        </fieldset>
    </form>
}
<button id="iletigonder" class="btn btn-large">@Html.Language("Gönder")</button>

e_mail_Template_1_model ve Mail Modelleri

using eticaret.Functions;
using Resources;
using System.ComponentModel.DataAnnotations;

namespace eticaret.Models
{
        [Localization]
    public class Mail
    {
        #region Açıklama

        //SmtpServer = Mailin gönderileceği SMTP adresi belirlenir.

        //UserName = Maili üzerinden göndereceğimiz mail adresinin kullanıcı adı.

        //Password = Maili üzerinden göndereceğimiz mail adresinin şifresi.

        //EnbaleSsl = Gönderilecek mail de HTML taglarının okunup okunmayacağı belirlenir.

        //SmtpPort = Smtp port numarası.

        //Send = Mail gönderme metodu.
        #endregion      

        [MyDisplayName("Ad")]
        public string GonderenAdi { get; set; }
      
        [Required]
        [StringLength(100, ErrorMessageResourceName = "kayit_sinir_min", MinimumLength = 2, ErrorMessageResourceType = typeof(lang))]
        [MyDisplayName("başlık")]
        public string Konu { get; set; }
        [Required]
        [StringLength(2000, ErrorMessageResourceName = "kayit_sinir_min", MinimumLength = 6, ErrorMessageResourceType = typeof(lang))]
        public string Mailicerik { get; set; }
        [Required]
        [EmailAddress]
        public string GondericiMailadres { get; set; }
       
        [MyDisplayName("Phone_Number")]
        public string PhoneNumber { get; set; }

    }

   public class e_mail_Template_1_model
        {
            [MyDisplayName("Ad")]
            public string GonderenAdi { get; set; }

            [MyDisplayName("başlık")]
            public string Konu { get; set; }

            [MyDisplayName("email_icerik")]
            public string Mailicerik { get; set; }

            [MyDisplayName("email")]
            public string GondericiMailadres { get; set; }

            public string siteadresi { get; set; }
            public string mailtarihi { get; set; }
            public string PhoneNumber { get; set; }

        }
}

emailtemlate1.cshtml ( * emalimizin oluşacağı HTML burada belirlenir.)

@model eticaret.Models.e_mail_Template_1_model

    <h2> @Model.siteadresi sitenizden <span style="text-align:center;color:#1a5296">@Model.Konu </span>konulu e-mailiniz:  </h2>
    <p style="text-align:center;color:#1a5296;background-color:#d3f3a3;">
        @Model.Mailicerik
        <hr />
        <span class="text-muted">
            <b><u>Kimden:</u> </b><br />
            <b>Adı:</b> @Model.GonderenAdi <br />
            <b>e-mail adresi:</b> @Model.GondericiMailadres <br />
            <b>Telefon:</b> @Model.PhoneNumber <br />
            <b>e-mail tarihi:</b> @Model.mailtarihi
        </span>
    </p>
    <p>
        İyi Günler dileriz...
    </p>
  


Paylaşmak güzeldir. Lütfen sizde paylaşın...



Herkesyazar Ara