Gmail এর মাধ্যমে .NET- এ ইমেল প্রেরণ


875

ইমেল প্রেরণের জন্য আমার হোস্টের উপর নির্ভর করার পরিবর্তে আমি আমার জিমেইল অ্যাকাউন্ট ব্যবহার করে ইমেল বার্তাগুলি প্রেরণের কথা ভাবছিলাম । ইমেলগুলি আমার শোতে আমি যে ব্যান্ডগুলি খেলি সেগুলিতে ব্যক্তিগতকৃত ইমেল।

এটা কি সম্ভব?


1
< systemnetmail.com > সম্ভবত একক। নেট নেমস্পেসের জন্য উত্সর্গীকৃত সবচেয়ে অযৌক্তিকরূপে সম্পূর্ণ সাইট ... তবে এটিতে এএসপি.নেট বা ডেস্কটপ যাই হোক না কেন নেট থেকে মেল প্রেরণের বিষয়ে আপনি কখনও জানতে চাইতে পারেন। < systemwebmail.com > পোস্টের মূল URL ছিল তবে NET 2.0 এবং তদূর্ধের জন্য ব্যবহার করা উচিত নয়।
অ্যাডাম হাইল

13
আপনি যদি এএসপি.নেট এমভিসি ব্যবহার করে থাকেন তবে আমি এমভিসিমেলারকে একবার দেখার পরামর্শ দিচ্ছি: github.com/smsohan/MvcMailer/wiki/MvcMailer- স্টেপ
বাই

আমার সাইটে এটি কীভাবে করা যায় তার একটি চমৎকার উদাহরণ আমার কাছে রয়েছে jarloo.com/gmail-in-c
কেলি

কিভাবে এই কোড ব্যবহার করে ফাইল পাঠাতে?
রানাধির রেড্ডি

উত্তর:


1065

নিশ্চিত ব্যবহার করতে হবে System.Net.Mail, না অবচিত System.Web.Mail। এসএসএল করা System.Web.Mailহ্যাকি এক্সটেনশনের গুরুতর জগাখিচুড়ি।

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

49
আপনি গুগল হঠাৎ হঠাৎ সিদ্ধান্ত নেন যে আপনি গত xx মিনিটের কয়েক মিনিটে খুব বেশি প্রেরণ করেছেন, আপনি ত্রুটিগুলিতে লগ না হওয়াতে আপনি এখনও পেতে পারেন। আপনার সর্বদা একটি ট্রান্সসেন্ড যুক্ত করা উচিত, যদি এটি কিছুক্ষণ ঘুমের মধ্যে ত্রুটি করে এবং তারপরে আবার চেষ্টা করে।
জেসন শর্ট

72
আকর্ষণীয় দ্রষ্টব্য: আপনি যদি 'UseDefaultCredentials = মিথ্যা,' এবং 'শংসাপত্রগুলি ...' পরিবর্তন করেন তবে তা প্রমাণীকরণ করবে না।
নাথান হুইলার

13
এই পদ্ধতিটি ব্যবহার করে এসপিএফ নিয়ে কোনও সমস্যা নেই। প্রতিটি ইমেল ক্লায়েন্ট ঠিক এটি করতে কনফিগার করা যেতে পারে। আপনি প্রেরক হিসাবে নিজের সার্ভার (অর্থাত্ অন্য কিছু smtp.gmail.com) ব্যবহার করলে আপনি সমস্যা পেতে পারেন something@gmail.com। বিটিডাব্লু: smtp.gmail.comপ্রেরকের ঠিকানা যদি এটি না হয় তবে স্বয়ংক্রিয়ভাবে ওভাররাইট করে।
মেইনসবার

24
বিভিন্ন টুইটের চেষ্টা করেও আমি এই কাজটি করতে বেশ কষ্ট পাচ্ছিলাম। সম্পর্কিত পোস্টে প্রস্তাবিত হিসাবে, আমি দেখতে পেয়েছি যে এটি আসলে আমার অ্যান্টিভাইরাস যা ইমেলগুলি সফলভাবে প্রেরণ করা থেকে বিরত ছিল। প্রশ্নে থাকা অ্যান্টিভাইরাসটি ম্যাকাফি এবং এর "অ্যাক্সেস প্রোটেকশন" এর একটি "অ্যান্টিভাইরাস স্ট্যান্ডার্ড প্রোটেকশন" বিভাগ রয়েছে যা "ইমেল প্রেরণ থেকে ম্যাসেজিং পোকার কীড়াগুলি রোধ করে" নিয়মে রয়েছে। এই নিয়মটিকে টুইট করা / অক্ষম করা এই কোডটি আমার পক্ষে কাজ করে!
yourbuddypal

18
আমি 5.5.1 প্রমাণীকরণের প্রয়োজনীয় ত্রুটি বার্তাটি পাচ্ছিলাম যতক্ষণ না বুঝেছি আমি এমন কোনও অ্যাকাউন্ট (আমার ব্যক্তিগত) সাথে পরীক্ষা করছি যাতে দুটি ফ্যাক্টর প্রমাণীকরণ চালু হয়েছিল। একবার আমি এমন একাউন্ট ব্যবহার করি যাতে এটি ছিল না, এটি ভাল কাজ করেছিল। আমি আমার অ্যাপ্লিকেশনটির জন্য একটি পাসওয়ার্ডও তৈরি করতে পারি যা আমি আমার ব্যক্তিগত অ্যাক্ট থেকে পরীক্ষা করে দেখছিলাম, তবে আমি এটি করতে চাইনি।
নিক ডিভোর

153

উপরের উত্তরটি কাজ করে না। আপনাকে সেট DeliveryMethod = SmtpDeliveryMethod.Networkকরতে হবে অথবা এটি একটি " ক্লায়েন্ট প্রমাণীকৃত ছিল না " ত্রুটি নিয়ে ফিরে আসবে । এছাড়াও সময়সীমা নির্ধারণ করা সর্বদা একটি ভাল ধারণা।

সংশোধিত কোড:

using System.Net.Mail;
using System.Net;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@yahoo.com", "To Name");
const string fromPassword = "password";
const string subject = "test";
const string body = "Hey now!!";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
    Timeout = 20000
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

3
মজাদার; এটি আমার মেশিনে (টিএম) কাজ করে। তবে যেহেতু এটি প্রশংসনীয় বলে মনে হচ্ছে, তাই আমি এটি আমার উত্তরে যুক্ত করব।
ডোমেনিক

3
হুম আমার অনুমান যে এইচটিপিডেলিভারি মেঠোড. নেট ওয়ার্কটি ডিফল্ট, তবে আইআইএসে চলাকালীন ডিফল্টটি বদলে যায় --- আপনি যা করছিলেন তা কি?
ডোমেনিক

3
আমি কনসোল অ্যাপ্লিকেশনটিতে একই কোডটি ব্যবহার করছি, এটি ত্রুটির মাধ্যমে "মেল প্রেরণে ব্যর্থ" "
কার্তিক্যায়ন পি

5
এই উত্তর কাজ করে না। দয়া করে, প্রশ্ন এ বর্ণন stackoverflow.com/questions/34851484/...

110

"একটি সার্ভার থেকে" কাজ করার জন্য অন্যান্য উত্তরের জন্য প্রথমে কম সুরক্ষিত অ্যাপ্লিকেশনগুলির জন্য অ্যাক্সেস চালু করুন জিমেইল অ্যাকাউন্টে ।

দেখে মনে হচ্ছে সম্প্রতি গুগল এটির নিরাপত্তা নীতি পরিবর্তন করেছে। উপরে বর্ণিত উত্তরটি আর কাজ করে না, যতক্ষণ না আপনি এখানে বর্ণিত হিসাবে নিজের অ্যাকাউন্ট সেটিংস পরিবর্তন করেন: https://support.google.com/accounts/answer/6010255?hl=en-GBএখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

মার্চ ২০১ 2016 পর্যন্ত, গুগল আবার সেটিংসের অবস্থান পরিবর্তন করেছে!


4
এটি আমার পক্ষে কাজ করেছে। এবং সম্পর্কিতও। নিশ্চিত না যে আমি সেই সুরক্ষাটি বন্ধ করতে চাই। পুনর্বিবেচনা করার প্রয়োজন হতে পারে ...
সুলি

4
সুরক্ষা দৃষ্টিকোণ থেকে দ্বি-পদক্ষেপ যাচাইকরণটি চালু করা এবং তারপরে অ্যাপ্লিকেশন পাসওয়ার্ড তৈরি ও ব্যবহার করা ভাল see দেখুন নতুন সুরক্ষা নীতি অনুসারে নেট কীভাবে ইমেল প্রেরণ করবেন?
মাইকেল ফ্রেইজিম

2
@ বিবিএস সফ্টওয়্যার, ইনমি প্রোগ্রাম, ব্যবহারকারী আমার ইমেলটি প্রবেশ করিয়ে বার্তাটি প্রেরণে ব্যবহার করতে হবে এমন কোনও ইমেল প্রবেশ করান। সুতরাং, আমি কীভাবে ইমেল ব্যবহারকারীকে 2-ফ্যাক্টর প্রমাণীকরণ চালু করা সত্ত্বেও ইমেলটি প্রেরণ করতে সক্ষম করতে পারি ??
আলা '

আপনি যদি গুগলের জিমেইলের মাধ্যমে ইমেলগুলি প্রেরণ / গ্রহণ করতে কোনও মাইক্রোসফ্ট আউটলুক ক্লায়েন্ট (একটি ডেস্কটপ, মোবাইল ফোন ইত্যাদিতে) ব্যবহার করতে চান তবে আপনার একই সেটিংসটি পরিবর্তন করতে হবে।
ব্রেট রিগবি

41

এটি সংযুক্তি সহ ইমেল প্রেরণ করা .. সহজ এবং সংক্ষিপ্ত ..

উত্স: http://coding-issues.blogspot.in/2012/11/sending-email-with-attachments-from-c.html

using System.Net;
using System.Net.Mail;

public void email_send()
{
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
    mail.From = new MailAddress("your mail@gmail.com");
    mail.To.Add("to_mail@gmail.com");
    mail.Subject = "Test Mail - 1";
    mail.Body = "mail with attachment";

    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("your mail@gmail.com", "your password");
    SmtpServer.EnableSsl = true;

    SmtpServer.Send(mail);

}

21

গুগল এমন কিছু অ্যাপ্লিকেশন বা ডিভাইসগুলির সাইন ইন প্রয়াসকে অবরোধ করতে পারে যা আধুনিক সুরক্ষা মান ব্যবহার করে না। যেহেতু এই অ্যাপ্লিকেশনগুলি এবং ডিভাইসগুলি সহজেই ভাঙ্গতে সহজ হয় সেগুলি ব্লক করা আপনার অ্যাকাউন্টকে আরও নিরাপদ রাখতে সহায়তা করে।

সর্বশেষতম সুরক্ষা মানগুলিকে সমর্থন করে না এমন অ্যাপসের কয়েকটি উদাহরণ অন্তর্ভুক্ত:

  • আইওএস 6 বা নীচে আপনার আইফোন বা আইপ্যাডে মেল অ্যাপ্লিকেশন
  • 8.1 রিলিজের আগের আপনার উইন্ডোজ ফোনে মেল অ্যাপ্লিকেশন
  • মাইক্রোসফ্ট আউটলুক এবং মজিলা থান্ডারবার্ডের মতো কিছু ডেস্কটপ মেল ক্লায়েন্ট

অতএব, আপনাকে কম সুরক্ষিত সাইন-ইন সক্ষম করতে হবে আপনার গুগল অ্যাকাউন্টে ।

গুগল অ্যাকাউন্টে সাইন ইন করার পরে, এখানে যান:

https://myaccount.google.com/lesssecureapps
বা
https://www.google.com/settings/security/lesssecureapps

সি # তে, আপনি নিম্নলিখিত কোডটি ব্যবহার করতে পারেন:

using (MailMessage mail = new MailMessage())
{
    mail.From = new MailAddress("email@gmail.com");
    mail.To.Add("somebody@domain.com");
    mail.Subject = "Hello World";
    mail.Body = "<h1>Hello</h1>";
    mail.IsBodyHtml = true;
    mail.Attachments.Add(new Attachment("C:\\file.zip"));

    using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587))
    {
        smtp.Credentials = new NetworkCredential("email@gmail.com", "password");
        smtp.EnableSsl = true;
        smtp.Send(mail);
    }
}

17

আমার এটি কাজ করার জন্য, আমাকে আমার জিমেইল অ্যাকাউন্টটি সক্ষম করতে হয়েছিল যাতে অন্যান্য অ্যাপ্লিকেশনগুলির অ্যাক্সেস অর্জন সম্ভব হয়। এই "সক্ষম কম সুরক্ষিত অ্যাপ্লিকেশানের" সঙ্গে সম্পন্ন করা হয় এবং এছাড়াও এই লিঙ্কটি ব্যবহার করে: https://accounts.google.com/b/0/DisplayUnlockCaptcha


16

এখানে আমার সংস্করণটি দেওয়া হয়েছে: " জিমেইল ব্যবহার করে সি # তে ইমেল প্রেরণ করুন "।

using System;
using System.Net;
using System.Net.Mail;

namespace SendMailViaGmail
{
   class Program
   {
   static void Main(string[] args)
   {

      //Specify senders gmail address
      string SendersAddress = "Sendersaddress@gmail.com";
      //Specify The Address You want to sent Email To(can be any valid email address)
      string ReceiversAddress = "ReceiversAddress@yahoo.com";
      //Specify The password of gmial account u are using to sent mail(pw of sender@gmail.com)
      const string SendersPassword = "Password";
      //Write the subject of ur mail
      const string subject = "Testing";
      //Write the contents of your mail
      const string body = "Hi This Is my Mail From Gmail";

      try
      {
        //we will use Smtp client which allows us to send email using SMTP Protocol
        //i have specified the properties of SmtpClient smtp within{}
        //gmails smtp server name is smtp.gmail.com and port number is 587
        SmtpClient smtp = new SmtpClient
        {
           Host = "smtp.gmail.com",
           Port = 587,
           EnableSsl = true,
           DeliveryMethod = SmtpDeliveryMethod.Network,
           Credentials    = new NetworkCredential(SendersAddress, SendersPassword),
           Timeout = 3000
        };

        //MailMessage represents a mail message
        //it is 4 parameters(From,TO,subject,body)

        MailMessage message = new MailMessage(SendersAddress, ReceiversAddress, subject, body);
        /*WE use smtp sever we specified above to send the message(MailMessage message)*/

        smtp.Send(message);
        Console.WriteLine("Message Sent Successfully");
        Console.ReadKey();
     }

     catch (Exception ex)
     {
        Console.WriteLine(ex.Message);
        Console.ReadKey();
     }
    }
   }
 }

8
যদিও আপনার নিবন্ধটি আসলে প্রশ্নের উত্তর দিতে পারে , তবে এখানে উত্তরের প্রয়োজনীয় অংশগুলি অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্ক সরবরাহ করা ভাল। স্ট্যাক ওভারফ্লো কেবল তার প্রশ্ন এবং উত্তরগুলির মতোই কার্যকর এবং যদি আপনার ব্লগের হোস্ট নীচে যায় বা আপনার ইউআরএলগুলি প্রায় সরানো হয় তবে এই উত্তরটি অকেজো হয়ে যায়। ধন্যবাদ!
12'12 এ 6:48 এ sarnold

14

আমি আশা করি এই কোডটি ঠিকঠাকভাবে কাজ করবে। আপনি চেষ্টা করতে পারেন।

// Include this.                
using System.Net.Mail;

string fromAddress = "xyz@gmail.com";
string mailPassword = "*****";       // Mail id password from where mail will be sent.
string messageBody = "Write the body of the message here.";


// Create smtp connection.
SmtpClient client = new SmtpClient();
client.Port = 587;//outgoing port for the mail.
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(fromAddress, mailPassword);


// Fill the mail form.
var send_mail = new MailMessage();

send_mail.IsBodyHtml = true;
//address from where mail will be sent.
send_mail.From = new MailAddress("from@gmail.com");
//address to which mail will be sent.           
send_mail.To.Add(new MailAddress("to@example.com");
//subject of the mail.
send_mail.Subject = "put any subject here";

send_mail.Body = messageBody;
client.Send(send_mail);

2
বার্তা সেন্ড_মেল = নতুন মেইলমেসেজ (); এই লাইনটি কীভাবে কাজ করবেন বলে মনে করছেন? আপনি পরোক্ষভাবে 'System.Windows.Forms.Message' থেকে 'System.Net.Mail.MailMessage' রূপান্তর করতে পারবেন না
Debaprasad

9

এটি অন্তর্ভুক্ত করুন,

using System.Net.Mail;

এবং তারপর,

MailMessage sendmsg = new MailMessage(SendersAddress, ReceiversAddress, subject, body); 
SmtpClient client = new SmtpClient("smtp.gmail.com");

client.Port = Convert.ToInt16("587");
client.Credentials = new System.Net.NetworkCredential("mail-id@gmail.com","password");
client.EnableSsl = true;

client.Send(sendmsg);

8

সূত্র : এএসপি.নেট সি # তে ইমেল প্রেরণ করুন

নীচে সি # ব্যবহার করে একটি মেইলে প্রেরণের জন্য একটি নমুনা কার্যকারী কোড রয়েছে, নীচের উদাহরণে আমি গুগলের এসএমটিপি সার্ভারটি ব্যবহার করছি।

কোডটি বেশ স্ব ব্যাখ্যাযোগ্য, আপনার ইমেল এবং পাসওয়ার্ডের মানগুলির সাথে ইমেল এবং পাসওয়ার্ড প্রতিস্থাপন করুন।

public void SendEmail(string address, string subject, string message)
{
    string email = "yrshaikh.mail@gmail.com";
    string password = "put-your-GMAIL-password-here";

    var loginInfo = new NetworkCredential(email, password);
    var msg = new MailMessage();
    var smtpClient = new SmtpClient("smtp.gmail.com", 587);

    msg.From = new MailAddress(email);
    msg.To.Add(new MailAddress(address));
    msg.Subject = subject;
    msg.Body = message;
    msg.IsBodyHtml = true;

    smtpClient.EnableSsl = true;
    smtpClient.UseDefaultCredentials = false;
    smtpClient.Credentials = loginInfo;
    smtpClient.Send(msg);
}

ভেরার পরিবর্তে, আমি ক্লাসের নাম যেমন নেটওয়ার্কক্রেডেনসিয়াল, মেলমেসেজ এবং শ্রীমতিপ্লিয়েন্ট ব্যবহার করেছি me এটি আমার পক্ষে কাজ করে।
জুঁই টেস্ট

7

আপনি যদি পটভূমির ইমেল প্রেরণ করতে চান তবে নীচে দয়া করে করুন

 public void SendEmail(string address, string subject, string message)
 {
 Thread threadSendMails;
 threadSendMails = new Thread(delegate()
    {

      //Place your Code here 

     });
  threadSendMails.IsBackground = true;
  threadSendMails.Start();
}

এবং নেমস্পেস যুক্ত করুন

using System.Threading;


5

এটা চেষ্টা কর,

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

            mail.From = new MailAddress("your_email_address@gmail.com");
            mail.To.Add("to_address");
            mail.Subject = "Test Mail";
            mail.Body = "This is for testing SMTP mail from GMAIL";

            SmtpServer.Port = 587;
            SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
            SmtpServer.EnableSsl = true;

            SmtpServer.Send(mail);
            MessageBox.Show("mail Send");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

4

এইভাবে ব্যবহার করুন

MailMessage sendmsg = new MailMessage(SendersAddress, ReceiversAddress, subject, body); 
SmtpClient client = new SmtpClient("smtp.gmail.com");

client.Port = Convert.ToInt32("587");
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("mail-id@gmail.com","MyPassWord");
client.Send(sendmsg);

এটি ভুলবেন না:

using System.Net;
using System.Net.Mail;

4

জিমেইলে সুরক্ষার সমস্যাগুলি এড়াতে আপনার জিমেইল সেটিংস থেকে প্রথমে একটি অ্যাপ্লিকেশন পাসওয়ার্ড তৈরি করা উচিত এবং আপনি দুটি পদক্ষেপ যাচাইকরণ ব্যবহার করলেও ইমেল প্রেরণের জন্য সত্যিকারের পাসওয়ার্ডের পরিবর্তে আপনি এই পাসওয়ার্ডটি ব্যবহার করতে পারেন।


3

Gmail / আউটলুক.কম ইমেলটিতে প্রেরক পরিবর্তন করা হচ্ছে:

ছদ্মবেশ রোধ করতে - জিমেইল / আউটলুক.কম আপনাকে একটি স্বেচ্ছাসেবীর অ্যাকাউন্টের নাম থেকে প্রেরণ করতে দেবে না।

আপনার যদি সীমিত সংখ্যক প্রেরক থাকে তবে আপনি এই নির্দেশাবলী অনুসরণ করতে পারেন এবং তারপরে Fromএই ঠিকানায় ক্ষেত্রটি সেট করতে পারেন : আলাদা ঠিকানা থেকে মেল প্রেরণ

আপনি যদি সেরা কোনও ইমেল ঠিকানা (যেমন কোনও ওয়েবসাইটের প্রতিক্রিয়া ফর্ম যেখানে ব্যবহারকারী তাদের ইমেল প্রবেশ করে এবং আপনি তাদের সরাসরি ইমেল করতে চান না) থেকে আপনি যদি পাঠাতে চান তবে আপনি যা করতে পারেন তা হ'ল:

        msg.ReplyToList.Add(new System.Net.Mail.MailAddress(email, friendlyName));

প্রতিক্রিয়ার পৃষ্ঠায় আপনার ব্যান্ডের ফ্যানকে জবাব দেওয়ার জন্য এটি আপনাকে কেবল আপনার ইমেল অ্যাকাউন্টে 'জবাব' দেবে, তবে তারা আপনার প্রকৃত ইমেলটি পাবে না যা সম্ভবত এক টন স্প্যামের কারণ হতে পারে।

আপনি যদি একটি নিয়ন্ত্রিত পরিবেশে থাকেন তবে এটি দুর্দান্ত কাজ করে তবে দয়া করে নোট করুন যে আমি কিছু ইমেল ক্লায়েন্টগুলি উত্তরটি নির্দিষ্ট করার পরেও ঠিকানা থেকে প্রেরণ করতে দেখেছি (কোনটি আমি জানি না)।


3

আমার একই সমস্যা ছিল, তবে এটি জিমেইলের সুরক্ষা সেটিংসে গিয়ে কম সিকিউর অ্যাপ্লিকেশনগুলিকে অনুমতি দিয়ে সমাধান করা হয়েছিল । ডোমেনিক ও ডনির কোডটি কাজ করে তবে আপনি যদি সেটিংটি সক্ষম করে থাকেন তবেই

আপনি যদি সাইন ইন হন (গুগলে) আপনি এই লিঙ্কটি অনুসরণ করতে পারেন এবং " কম সুরক্ষিত অ্যাপ্লিকেশনগুলির জন্য অ্যাক্সেস " এর জন্য " চালু করুন" টগল করতে পারেন


3
using System;
using System.Net;
using System.Net.Mail;

namespace SendMailViaGmail
{
   class Program
   {
   static void Main(string[] args)
   {

      //Specify senders gmail address
      string SendersAddress = "Sendersaddress@gmail.com";
      //Specify The Address You want to sent Email To(can be any valid email address)
      string ReceiversAddress = "ReceiversAddress@yahoo.com";
      //Specify The password of gmial account u are using to sent mail(pw of sender@gmail.com)
      const string SendersPassword = "Password";
      //Write the subject of ur mail
      const string subject = "Testing";
      //Write the contents of your mail
      const string body = "Hi This Is my Mail From Gmail";

      try
      {
        //we will use Smtp client which allows us to send email using SMTP Protocol
        //i have specified the properties of SmtpClient smtp within{}
        //gmails smtp server name is smtp.gmail.com and port number is 587
        SmtpClient smtp = new SmtpClient
        {
           Host = "smtp.gmail.com",
           Port = 587,
           EnableSsl = true,
           DeliveryMethod = SmtpDeliveryMethod.Network,
           Credentials = new NetworkCredential(SendersAddress, SendersPassword),
           Timeout = 3000
        };

        //MailMessage represents a mail message
        //it is 4 parameters(From,TO,subject,body)

        MailMessage message = new MailMessage(SendersAddress, ReceiversAddress, subject, body);
        /*WE use smtp sever we specified above to send the message(MailMessage message)*/

        smtp.Send(message);
        Console.WriteLine("Message Sent Successfully");
        Console.ReadKey();
     }
     catch (Exception ex)
     {
        Console.WriteLine(ex.Message);
        Console.ReadKey();
     }
}
}
}

2

মেল প্রেরণ এবং ওয়েবকনফিগের শংসাপত্র পাওয়ার জন্য এখানে একটি পদ্ধতি রয়েছে:

public static string SendEmail(string To, string Subject, string Msg, bool bodyHtml = false, bool test = false, Stream AttachmentStream = null, string AttachmentType = null, string AttachmentFileName = null)
{
    try
    {
        System.Net.Mail.MailMessage newMsg = new System.Net.Mail.MailMessage(System.Configuration.ConfigurationManager.AppSettings["mailCfg"], To, Subject, Msg);
        newMsg.BodyEncoding = System.Text.Encoding.UTF8;
        newMsg.HeadersEncoding = System.Text.Encoding.UTF8;
        newMsg.SubjectEncoding = System.Text.Encoding.UTF8;

        System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
        if (AttachmentStream != null && AttachmentType != null && AttachmentFileName != null)
        {
            System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(AttachmentStream, AttachmentFileName);
            System.Net.Mime.ContentDisposition disposition = attachment.ContentDisposition;
            disposition.FileName = AttachmentFileName;
            disposition.DispositionType = System.Net.Mime.DispositionTypeNames.Attachment;

            newMsg.Attachments.Add(attachment);
        }
        if (test)
        {
            smtpClient.PickupDirectoryLocation = "C:\\TestEmail";
            smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
        }
        else
        {
            //smtpClient.EnableSsl = true;
        }

        newMsg.IsBodyHtml = bodyHtml;
        smtpClient.Send(newMsg);
        return SENT_OK;
    }
    catch (Exception ex)
    {

        return "Error: " + ex.Message
             + "<br/><br/>Inner Exception: "
             + ex.InnerException;
    }

}

এবং ওয়েব.কমফিগ সম্পর্কিত বিভাগ:

<appSettings>
    <add key="mailCfg" value="yourmail@example.com"/>
</appSettings>
<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" from="yourmail@example.com">
      <network defaultCredentials="false" host="mail.exapmple.com" userName="yourmail@example.com" password="your_password" port="25"/>
    </smtp>
  </mailSettings>
</system.net>

2

আর একবার চেষ্টা কর

public static bool Send(string receiverEmail, string ReceiverName, string subject, string body)
{
        MailMessage mailMessage = new MailMessage();
        MailAddress mailAddress = new MailAddress("abc@gmail.com", "Sender Name"); // abc@gmail.com = input Sender Email Address 
        mailMessage.From = mailAddress;
        mailAddress = new MailAddress(receiverEmail, ReceiverName);
        mailMessage.To.Add(mailAddress);
        mailMessage.Subject = subject;
        mailMessage.Body = body;
        mailMessage.IsBodyHtml = true;

        SmtpClient mailSender = new SmtpClient("smtp.gmail.com", 587)
        {
            EnableSsl = true,
            UseDefaultCredentials = false,
            DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
            Credentials = new NetworkCredential("abc@gmail.com", "pass")   // abc@gmail.com = input sender email address  
                                                                           //pass = sender email password
        };

        try
        {
            mailSender.Send(mailMessage);
            return true;
        }
        catch (SmtpFailedRecipientException ex)
        { 
          // Write the exception to a Log file.
        }
        catch (SmtpException ex)
        { 
           // Write the exception to a Log file.
        }
        finally
        {
            mailSender = null;
            mailMessage.Dispose();
        }
        return false;
}

1

আমার সমস্যাটি হ'ল আমার পাসওয়ার্ডটিতে একটি ব্ল্যাকস্ল্যাশ ছিল "copy" , যা আমি অনুধাবন না করে আটকানো অনুলিপি করেছিলাম যা সমস্যার সৃষ্টি করে।


1

অন্য উত্তর থেকে অনুলিপি করা , উপরোক্ত পদ্ধতিগুলি কাজ করে তবে gmail সর্বদা প্রকৃত প্রেরণকারী Gmail অ্যাকাউন্টের সাথে "থেকে" এবং "জবাব দিতে" ইমেলটি প্রতিস্থাপন করে। স্পষ্টতই এখানে প্রায় কাজ আছে:

http://karmic-development.blogspot.in/2013/10/send-email-from-aspnet-using-gmail-as.html

"৩. অ্যাকাউন্টস ট্যাবে," আপনার নিজের অন্য ইমেল ঠিকানা যুক্ত করুন "তারপরে লিঙ্কটি ক্লিক করুন এবং এটি যাচাই করুন"

অথবা সম্ভবত এটি

3 আপডেট ঠিকানা হল."


1

আপনি চেষ্টা করতে পারেন Mailkit। এটি আপনাকে মেল প্রেরণের জন্য আরও ভাল এবং অগ্রিম কার্যকারিতা দেয়। আপনি জানতে পারেন থেকে আরো এই এখানে একটি উদাহরণ

    MimeMessage message = new MimeMessage();
    message.From.Add(new MailboxAddress("FromName", "YOU_FROM_ADDRESS@gmail.com"));
    message.To.Add(new MailboxAddress("ToName", "YOU_TO_ADDRESS@gmail.com"));
    message.Subject = "MyEmailSubject";

    message.Body = new TextPart("plain")
    {
        Text = @"MyEmailBodyOnlyTextPart"
    };

    using (var client = new SmtpClient())
    {
        client.Connect("SERVER", 25); // 25 is port you can change accordingly

        // Note: since we don't have an OAuth2 token, disable
        // the XOAUTH2 authentication mechanism.
        client.AuthenticationMechanisms.Remove("XOAUTH2");

        // Note: only needed if the SMTP server requires authentication
        client.Authenticate("YOUR_USER_NAME", "YOUR_PASSWORD");

        client.Send(message);
        client.Disconnect(true);
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.