سلام.من در پروژم نیاز دارم تا افراد بتونن در قسمت تماس با ما به مدیر پیام بفرستن.با سرچ تو اینترنت سعی کردم این کارو انجام بدم اما هر بار ارور میده .ممنون میشم اگه راهنمایی کنین یا ی نمونه کد قرار بدین.این پروژه با mvc5 و entityframework هستش.
ممنون
public class ContactModel:Thing
{
public string FullName { get; set; }
public string Email { get; set; }
public string Subject { get; set; }
public string Messege { get; set; }
}
شما باید در داخل دیتابیس خود جدولی طراحی کنید با فیلد های مورد نیاز خود که در بالا آورده شده و در صفحه تماس با ما اطلاعات افراد را بگیرید و در کد آنها را در دیتابیس ذخیره کنید و آخر اطلاعات ذخیره شده در دیتابیس را در جدولی جداگانه داخل صفحه ادمین نمایش دهید:
صفحه تماس با ما (*.cshtml) :
@model Avab_Mvc.Models.ContactMessages @using (Html.BeginForm("ContactMessage", "Home", FormMethod.Post, new { @id = "commentform" })) { @Html.AntiForgeryToken() @Html.ValidationSummary(true, "", new { @class = "text-danger" }) @Html.HiddenFor(model=>model.Date) @Html.HiddenFor(model=>model.IsRead) <label class="label-name"></label> @Html.TextBoxFor(model => model.FullName, new { @class = "form_field", @id = "author" }) @Html.ValidationMessageFor(model => model.FullName, "", new { @class = "text-danger" }) <div class="clear"></div> <label class="label-email"></label> @Html.TextBoxFor(model => model.Email, new { @class = "form_field", @id = "email" }) @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" }) <div class="clear"></div> <label class="label-subject"></label> @Html.TextBoxFor(model => model.Subject, new { @class = "form_field", @id = "subject" }) @Html.ValidationMessageFor(model => model.Subject, "", new { @class = "text-danger" }) <div class="clear"></div> <label class="label-message"></label> @Html.EditorFor(model => model.Message, new { htmlAttributes = new { @class = "form_field", @rows = "5", @cols = "45", @id = "comment-message" } }) @Html.ValidationMessageFor(model => model.Message, "", new { @class = "text-danger" }) <div class="clear"></div> <p class="form-submit"> <input type="reset" name="reset" id="reset" value="پاک کردن فرم"> <input type="submit" value="ارسال پیام" id="submit" class="feedback_go" /> </p> }
کدهای داخل Controller (*.cs) :
#region ContactUS Partial public ActionResult ContactUs() { return View(); } public ActionResult ContactPartial() { return PartialView(db.Settings.FirstOrDefault()); } public ActionResult ContactMessage() { return PartialView(); } [HttpPost] public ActionResult ContactMessage(ContactMessages message) { if (ModelState.IsValid) { message.Date = DateTime.Now; message.IsRead = false; db.ContactMessages.Add(message); db.SaveChanges(); } //return View(message); return null; } #endregion
سلام.ممنون از پاسختون.چند تا سوال دارم:
1-اکشن ContactPartial چ کاری انجام میده؟
2-این کد برای ارسال پیام ب ادمینه نه برای ارسال ایمیل .درسته؟
ارسال ایمیل در تکنولوژی ها فرقی با هم نداره
از طریق کد زیر میتونید ارسال کنید
MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("From@Domain.com"); mail.To.Add(To); mail.Subject = Subject; mail.Body = Body; //mail.IsBodyHtml = true; //System.Net.Mail.Attachment attachment; // attachment = new System.Net.Mail.Attachment("c:/textfile.txt"); // mail.Attachments.Add(attachment); SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("Email@gmail.com", "PassWord"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail);
من هر بار با هر کدی ارسال ایمیل رو تست کردم این ارور رو میده ک براتون میفرستمش.با این کد هم همینطور..لطفا راهنمایی کنید ک مشکل از کجاست!!
public ActionResult Index()
{
var model = new Contact();
return View(model);
}
[HttpPost]
public ActionResult Index(Contact c)
{
if (ModelState.IsValid)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("b.mirzaie70@gmail.com");
mail.To.Add("b.mirzaie70@gmail.com");
mail.Subject = c.Subject;
mail.Body = c.Messege;
mail.IsBodyHtml = true;
//System.Net.Mail.Attachment attachment;
// attachment = new System.Net.Mail.Attachment("c:/textfile.txt");
// mail.Attachments.Add(attachment);
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("b.mirzaie70@gmail.com", "****");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
}
return View();
}
ارور: با دو پرت 25 و 587 امتحان کردم ک هر بار یکی از این ارور ها رو میده
Failure sending mail یا Additional information: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at
عکس ضمیمه نشده
عکس ضمیمه نمیشد.خود کدها و خطا رو قرار دادم.
اگر از Gmail استفاده میکنید ، یک ایمیل به ایمیل فرستنده ارسال میشه و تایید میخواد
وارد ایمیل خود بشید و آی پی رو تایید کنید
ادرس ایمیل رو عوض کردم درست شد.خیلی ممنون از راهنماییتون
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)