میخوام توی پروژه ام که Asp.net core هست ایمیل ارسال کنم. کسی میدونه کدهاش به چه صورتی هست؟
ممنون میشم راهنمایی کنید.
سلام
کافیه یک کلاس ایجاد کنید و کد زیر رو توش کپی کنید.
public async Task SendEmailAsync(string email, string subject, string message)
{
using (var Client = new SmtpClient())
{
var Credential = new NetworkCredential
{
UserName = "UserName",
Password = "****"
};
Client.Credentials = Credential;
Client.Host = "smtp.gmail.com";
Client.Port = 587; // or 25 -- 587 -- 465 For Send Email
Client.EnableSsl = true;
using (var emailMessage = new MailMessage())
{
emailMessage.To.Add(new MailAddress(email));
emailMessage.From = new MailAddress("EmailAddress");
emailMessage.Subject = subject;
emailMessage.IsBodyHtml = true;
emailMessage.Body = message;
Client.Send(emailMessage);
};
await Task.CompletedTask;
}
/////////////////////////////////////////////////////////////////
}
در کدهای بالا به جای UserName آدرس ایمیل تا قبل از @ رو می تونید بذارید و بقیه هم که مشخص هست.
همچنین اگر از سرویسی جز جیمیل استفاده می کنید جای Client.Host باید آدرس سرور رو بنویسید.
موفق باشید
سلام من برای ارسال ایمیل از کدهای زیر استفاده کردم ولی موقع ارسال ایمیل پیغام خطا میده
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Web;
namespace LatinMedia.Core.Senders
{
public class SendEmail
{
public static void Send(string to, string subject, string body)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("mrmehdi64@gmail.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("mrmehdi64@gmail.com", "MyPasword");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
}
}
}
ول
پاسخ به mrmehdi64
توی متن خطا نوشته شده see the inner Exception
بهتره که روی گزینه View Details کلیک کنید و در پنجره باز شده inner Exception و Message رو باز کنید تا دقیقا بگه خطا از چی هست.
ولی ظاهرا متن ایمیلی که ارسال کردید فرمتش صحیح نیست.
دقیقا چه متنی رو میخواید ایمیل کنید. متن ایمیل شما باید به صورت کدهای html باشه
خوب این متن خطایی که گفتید....
و چیزی که میخوام بفرستم اینکه وقتی کاربر میخواد تو سایت لاگین کنه درصورتیکه رمز عبورش رو فراموش کرده باشه از طریق ارسال ایمیل رمز عبورش رو میتونه ریست کنه
کدهای مربوط ایمیل ارسالی هم اینه:
@model LatinMedia.DataLayer.Entities.User.User
@{
Layout = null;
}
<div style="direction: rtl;padding:20px;margin-right:40px;">
<h2>عزیز! @(Model.FirstName + " " + Model.LastName) </h2>
<p>
<span>جهت بازیابی رمز عبور خود، روی لینک زیر کلیک کنید.</span>
<br />
<a href="https://localhost:44316/Account/ResetPassword/@Model.ActiveCode">بازیابی کلمه عبور</a>
</p>
</div>
دیگه نمیدونم مشکل از کجاست؟؟؟؟
سلام شما متن body رو کجا نوشتی باید توی کنترلر و داخل رشته ی body که نوشتی کدها رو بنویسید... الان توی این کدهایی که نوشتید متن body نیست... از رشته body عکس بگیرید و بفرستید منظورم از ویوی شما نیست....
جهت ارسال ایمیل در Asp.net core یک کلاس ایجاد کنید به نام EmailSender و کدهای زیر رو توش کپی کنید
public class EmailSender : IEmailSender
{
public async Task SendEmailAsync(string email, string subject, string message)
{
using (var Client = new SmtpClient())
{
var Credential = new NetworkCredential
{
UserName = "UserName",
Password = "****"
};
Client.Credentials = Credential;
Client.Host = "smtp.gmail.com";
Client.Port = 587; // or 25 -- 587 -- 465 For Send Email
Client.EnableSsl = true;
using (var emailMessage = new MailMessage())
{
emailMessage.To.Add(new MailAddress(email));
emailMessage.From = new MailAddress("EmailAddress");
emailMessage.Subject = subject;
emailMessage.IsBodyHtml = true;
emailMessage.Body = message;
Client.Send(emailMessage);
};
await Task.CompletedTask;
}
/////////////////////////////////////////////////////////////////
}
}
سپس یک interface ایجاد کنید و کد زیر رو توش کپی کنید
public interface IEmailSender
{
Task SendEmailAsync(string email, string subject, string htmlMessage);
}
در فایل startup.cs و در متد ConfigureService برای این کلاس و اینترفیس سرویس مورد نظر رو راه اندازی کنید
services.AddScoped<IEmailSender, EmailSender>();
و در نهایت در کدهای کنترلر خودتون متن ایمیل و موضوع ایمیل و سایر مشخصات رو بنویسید تا ایمیل ارسال بشه
await _emailSender.SendEmailAsync(userEmail, "موضوع ایمیل در اینجا", $"<div>متن کامل ایمیل </div>");
مراحل بالا رو انجام بدید باید بتونید عمل ارسال ایمیل در Asp رو انجام بدید
موفق باشید
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
370
- پاسخ :
1
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
909
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1281
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4746
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
126
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
72
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
363
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
469
- پاسخ :
1
|
تاریخ :
1403/06/17
- ساعت :
04:22:00 PM
- بازدید :
401
- پاسخ :
1
|
تاریخ :
1403/06/14
- ساعت :
06:44:00 PM
- بازدید :
498
- پاسخ :
0
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
370
- پاسخ :
1
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
909
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
891
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1281
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4746
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1113
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
564
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
126
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
72
- پاسخ :
0
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
300
- پاسخ :
1
|