Gmail के माध्यम से .NET में ईमेल भेजना


876

ईमेल भेजने के लिए अपने होस्ट पर निर्भर होने के बजाय, मैं अपने जीमेल खाते का उपयोग करके ईमेल संदेश भेजने के बारे में सोच रहा था । ईमेल मेरे शो पर चलने वाले बैंड के लिए व्यक्तिगत ईमेल हैं।

क्या ऐसा करना संभव है?


1
< systemnetmail.com > शायद एक .NET .NET नाम के लिए समर्पित सबसे बेतुका पूर्ण साइट है ... लेकिन यह कभी भी है जो आप कभी भी .NET के माध्यम से मेल भेजने के बारे में जानना चाहते हैं, यह ASP.NET या डेस्कटॉप हो सकता है। < systemwebmail.com > पोस्ट में मूल URL था, लेकिन इसका उपयोग .NET 2.0 और उससे अधिक के लिए नहीं किया जाना चाहिए।
एडम हेले

13
यदि आप ASP.Net Mvc का उपयोग कर रहे हैं, तो मैं MvcMailer पर एक नज़र रखने की सलाह दूंगा: github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
Noocyte

मेरी अपनी साइट 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
आप अभी भी उपयोगकर्ता को त्रुटियों के लिए लॉग इन नहीं कर सकते हैं यदि Google ने अचानक निर्णय लिया है कि आपने पिछले xx मिनटों में बहुत सारे भेजे हैं। आपको हमेशा एक trySend जोड़ना चाहिए, अगर यह त्रुटियां थोड़ी देर सोती हैं, और फिर फिर से प्रयास करें।
जेसन शॉर्ट

72
दिलचस्प नोट: यदि आप 'UseDefaultCredentials = false,' और 'क्रेडेंशियल्स = ...' स्वैप करते हैं, तो यह प्रमाणित नहीं होगा।
नाथन व्हीलर 16

13
इस पद्धति का उपयोग करके एसपीएफ के साथ कोई समस्या नहीं है। हर ईमेल क्लाइंट को ऐसा करने के लिए कॉन्फ़िगर किया जा सकता है। यदि आप प्रेषक के रूप में अपने सर्वर (यानी कुछ और की तुलना में smtp.gmail.com) का उपयोग करते हैं तो आपको समस्याएँ हो सकती हैं something@gmail.com। Btw: smtp.gmail.comस्वचालित रूप से प्रेषक पते को अधिलेखित कर देता है अगर यह आपका नहीं है।
मीनर्सबर्क

24
मुझे विभिन्न समयों की कोशिश करने के साथ भी यह काम करने में मुश्किल हो रहा था। जैसा कि संबंधित पोस्ट पर सुझाव दिया गया था, मैंने पाया कि यह वास्तव में मेरा एंटीवायरस था जो ईमेल को सफलतापूर्वक भेजे जाने से रोक रहा था। विचाराधीन एंटीवायरस McAffee है, और इसके "एक्सेस प्रोटेक्शन" में "एंटीवायरस स्टैंडर्ड प्रोटेक्शन" श्रेणी है, जिसमें "ईमेल भेजने से बड़े पैमाने पर मेलिंग वर्म्स" को रोकें। उस नियम को तोड़ / अक्षम करने से यह कोड मेरे लिए काम कर गया!
yourbuddypal 17

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
हम्म मेरा अनुमान है कि SmtpDeliveryMethod.Network डिफ़ॉल्ट है, लेकिन शायद IIS में चलने पर डिफ़ॉल्ट बदल जाता है --- यह था कि आप क्या कर रहे थे?
डोमोनिक

3
मैं कंसोल कोड में समान कोड का उपयोग कर रहा हूं, यह "मेल भेजने में विफलता"
कार्तिकेयन P

5
यह उत्तर काम नहीं करता है। कृपया, प्रश्न को देखें stackoverflow.com/questions/34851484/…

110

जीमेल खाते में कम सुरक्षित ऐप्स के लिए पहले "सर्वर से" काम चालू करने के अन्य उत्तरों के लिए ।

ऐसा लगता है कि हाल ही में Google ने इसे सुरक्षा नीति में बदल दिया है। शीर्ष रेटेड उत्तर अब काम नहीं करता है, जब तक आप अपनी खाता सेटिंग यहां बताए अनुसार बदल नहीं जाते: https://support.google.com/accounts/answer/6010255?hl=hi-GBयहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

मार्च 2016 तक, Google ने सेटिंग स्थान को फिर से बदल दिया!


4
इसने मेरे लिए काम किया। और भी संबंधित है। निश्चित नहीं है कि मैं उस सुरक्षा को बंद करना चाहता हूं। पुनर्विचार करने की आवश्यकता हो सकती है ...
सुली

4
सुरक्षा के दृष्टिकोण से बेहतर है कि 2-चरणीय सत्यापन चालू करें और फिर एप्लिकेशन पासवर्ड बनाएं और उपयोग करें- देखें कि नई सुरक्षा नीतियों के अनुसार .Net में ईमेल कैसे भेजें?
माइकल फ्रीजिम

2
@ BCS सॉफ़्टवेयर, inmy प्रोग्राम, उपयोगकर्ता कोई भी ईमेल सम्मिलित करता है जिसे मेरे प्रोग्राम को संदेश भेजने के लिए इसका उपयोग करना पड़ता है। तो, मैं कैसे 2-कारक प्रमाणीकरण चालू होने पर भी ईमेल उपयोगकर्ता को ईमेल भेजने में सक्षम बना सकता हूँ ??
आला

यदि आप Google के GMail के माध्यम से ईमेल भेजने / प्राप्त करने के लिए Microsoft Outlook क्लाइंट (डेस्कटॉप, मोबाइल फोन आदि पर) का उपयोग करना चाहते हैं, तो आपको वही सेटिंग बदलनी होगी, जो आपको चाहिए।
ब्रेट रिग्बी

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

Google कुछ एप्लिकेशन या उपकरणों के प्रयासों में साइन इन को रोक सकता है जो आधुनिक सुरक्षा मानकों का उपयोग नहीं करते हैं। चूंकि इन ऐप्स और डिवाइस को तोड़ना आसान है, इसलिए इन्हें ब्लॉक करना आपके अकाउंट को सुरक्षित रखने में मदद करता है।

एप्लिकेशन के कुछ उदाहरण जो नवीनतम सुरक्षा मानकों का समर्थन नहीं करते हैं, उनमें शामिल हैं:

  • आपके iPhone या iPad पर मेल एप्लिकेशन iOS 6 या उससे नीचे के साथ
  • 8.1 रिलीज से पहले आपके विंडोज फोन पर मेल एप
  • कुछ डेस्कटॉप मेल क्लाइंट जैसे Microsoft आउटलुक और मोज़िला थंडरबर्ड

इसलिए, आपको अपने Google खाते में कम सुरक्षित साइन-इन सक्षम करना होगा।

Google खाते में साइन इन करने के बाद:

https://myaccount.google.com/lesssecureapps
या
https://www.google.com/settings/security/lesssececeaeass

C # में, आप निम्न कोड का उपयोग कर सकते हैं:

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
हालांकि आपका लेख वास्तव में प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा । स्टैक ओवरफ्लो केवल अपने प्रश्नों और उत्तरों के रूप में उपयोगी है, और यदि आपका ब्लॉग होस्ट नीचे चला जाता है या आपके URL चारों ओर चले जाते हैं, तो यह उत्तर बेकार हो जाता है। धन्यवाद!
सरनादो

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
संदेश send_mail = नया MailMessage (); यह रेखा कैसे काम करती है? आप
संक्षेप में

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

स्रोत : ASP.NET C # में ईमेल भेजें

नीचे C # का उपयोग करके एक मेल भेजने के लिए एक नमूना कार्य कोड है, उदाहरण के लिए मैं Google के smtp सर्वर का उपयोग कर रहा हूं।

कोड बहुत आत्म व्याख्यात्मक है, अपने ईमेल और पासवर्ड मूल्यों के साथ ईमेल और पासवर्ड बदलें।

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);
}

Var के बजाय, मैंने NetworkCredential, MailMessage और SmtpClient.It जैसे वर्ग नाम का उपयोग किया है। यह मेरे लिए काम करता है।
जुई टेस्ट

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 / Outlook.com ईमेल पर प्रेषक बदलना:

स्पूफिंग को रोकने के लिए - जीमेल / आउटलुक डॉट कॉम आपको मनमाने यूजर अकाउंट के नाम से भेजने नहीं देगा।

यदि आपके पास सीमित संख्या में प्रेषक हैं तो आप इन निर्देशों का पालन कर सकते हैं और फिर Fromइस पते पर फ़ील्ड सेट कर सकते हैं : एक अलग पते से मेल भेजना

यदि आप एक मनमाने ईमेल पते से भेजना चाहते हैं (जैसे कि वेबसाइट पर एक फीडबैक फॉर्म, जहां उपयोगकर्ता अपने ईमेल में प्रवेश करता है और आप नहीं चाहते हैं कि वे आपको सीधे ईमेल करें) तो सबसे अच्छा आप यह कर सकते हैं:

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

यह आपके ईमेल खाते में फीडबैक पेज पर आपके बैंड के प्रशंसक को जवाब देने के लिए आपको केवल 'उत्तर' देता है, लेकिन उन्हें आपका वास्तविक ईमेल नहीं मिलेगा, जो संभवतः एक टन स्पैम का कारण होगा।

यदि आप एक नियंत्रित वातावरण में हैं तो यह बहुत अच्छा काम करता है, लेकिन कृपया ध्यान दें कि मैंने कुछ ईमेल क्लाइंट को पते से पता भेजा है, जब भी उत्तर निर्दिष्ट किया जाता है (मुझे नहीं पता कि कौन सा)।


3

मेरे पास एक ही मुद्दा था, लेकिन इसे जीमेल की सिक्योरिटी सेटिंग्स और एलोइंग लेस सिक्योर ऐप्स पर जाकर हल किया गया था । Domenic & Donny से कोड काम करता है, लेकिन केवल अगर आप उस सेटिंग को सक्षम करते हैं

यदि आप (Google में) साइन इन हैं, तो आप इस लिंक का अनुसरण कर सकते हैं और " कम सुरक्षित ऐप्स के लिए प्रवेश " के लिए " चालू करें" चालू करें।


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

मेल भेजने और web.config से क्रेडेंशियल प्राप्त करने की एक विधि इस प्रकार है:

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;
    }

}

और web.config में संबंधित अनुभाग:

<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

मेरे लिए समस्या यह थी कि मेरे पासवर्ड में एक ब्लैकस्लैश "\" था, जिसे मैंने कॉपी किया था बिना यह एहसास किए कि यह समस्याएँ पैदा करेगा।


1

एक अन्य उत्तर से नकल करते हुए , उपरोक्त विधियां काम करती हैं लेकिन जीमेल हमेशा "से" और "उत्तर" से ईमेल भेजने वाले वास्तविक मेल खाते के साथ बदल देता है। जाहिरा तौर पर हालांकि वहाँ एक काम है:

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

3. "अकाउंट्स टैब में, लिंक पर क्लिक करें" एक और ईमेल पता आप स्वयं जोड़ें "फिर इसे सत्यापित करें"

या संभवतः यह

अद्यतन 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);
    }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.