Wysyłanie wiadomości e-mail w .NET przez Gmaila


876

Zamiast polegać na tym, że mój host wysyła wiadomość e-mail, myślałem o wysyłaniu wiadomości e-mail za pomocą mojego konta Gmail . E-maile to spersonalizowane wiadomości e-mail do zespołów, w których gram w moim programie.

Czy można to zrobić?


1
< systemnetmail.com > jest prawdopodobnie najbardziej absurdalnie kompletną witryną poświęconą pojedynczej przestrzeni nazw .NET ... ale ma WSZYSTKO, co możesz chcieć wiedzieć o wysyłaniu poczty za pośrednictwem platformy .NET, czy to ASP.NET czy Desktop. < systemwebmail.com > był oryginalnym adresem URL w poście, ale nie należy go używać w .NET 2.0 i nowszych wersjach .
Adam Haile,

13
Jeśli używasz ASP.Net Mvc, poleciłbym zajrzeć do MvcMailer: github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
noocyte

Mam ładny przykład tego, jak to zrobić na mojej stronie jarloo.com/gmail-in-c
Kelly

jak wysłać plik za pomocą tego kodu?
Ranadheer Reddy

Odpowiedzi:


1065

Pamiętaj, aby użyć System.Net.Mail, a nie przestarzałe System.Web.Mail. Robienie SSL z System.Web.Mailjest ogromnym bałaganem hacky rozszerzeń.

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
Nadal możesz dostać się do niezalogowanych błędów, jeśli Google nagle zdecyduje, że wysłałeś zbyt wiele w ciągu ostatnich xx minut. Zawsze powinieneś dodać trySend, jeśli wystąpi błąd, a następnie spróbuj ponownie.
Jason Short,

72
Ciekawa uwaga: jeśli zamienisz „UseDefaultCredentials = false” i „Credentials = ...”, to nie zostanie uwierzytelnione.
Nathan Wheeler,

13
Nie ma problemów z SPF przy użyciu tej metody. Każdy klient poczty e-mail można skonfigurować tak, aby działał dokładnie tak. Mogą pojawić się problemy, jeśli użyjesz własnego serwera (tj. Czegoś innego niż smtp.gmail.com) something@gmail.comjako nadawcy. Btw: smtp.gmail.comautomatycznie zastępuje adres nadawcy, jeśli nie jest on twój.
Meinersbur

24
Trudno mi było pracować z tym, nawet próbując różnych poprawek. Jak zasugerowano w powiązanym poście, odkryłem, że to mój program antywirusowy uniemożliwiał pomyślne wysłanie wiadomości e-mail. Omawianym antywirusem jest McAffee, a jego „Ochrona dostępu” ma kategorię „Standardowa ochrona antywirusowa”, która ma zasadę „Zapobiegaj wysyłaniu wiadomości e-mail przez robaki masowo wysyłające”. Poprawienie / wyłączenie tej reguły sprawiło, że ten kod działa dla mnie!
yourbuddypal,

18
Otrzymywałem komunikat o błędzie Wymaganie uwierzytelnienia 5.5.1, dopóki nie zdałem sobie sprawy, że testuję konto (moje osobiste) z włączonym uwierzytelnianiem dwuskładnikowym. Kiedyś użyłem konta, które tego nie miało, działało dobrze. Mógłbym również wygenerować hasło do mojej aplikacji, z której testowałem w moim osobistym akcie, ale nie chciałem tego robić.
Nick DeVore,

153

Powyższa odpowiedź nie działa. Musisz ustawić DeliveryMethod = SmtpDeliveryMethod.Networklub wróci z błędem „ klient nie został uwierzytelniony ”. Poza tym zawsze dobrze jest ustawić limit czasu.

Zmieniony kod:

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
Ciekawy; działa na mojej maszynie (TM). Ale ponieważ wydaje się to prawdopodobne, dodam to do mojej odpowiedzi.
Domenic,

3
Hmm, domyślam się, że SmtpDeliveryMethod.Network jest domyślny, ale może domyślny zmienia się podczas pracy w IIS --- czy to było to, co robiłeś?
Domenic,

3
Używam tego samego kodu w aplikacji konsoli, to przez błąd „Nie
Karthikeyan P

5
Ta odpowiedź nie działa. Proszę spojrzeć na pytanie stackoverflow.com/questions/34851484/…

110

Aby pozostałe odpowiedzi działały „z serwera” najpierw włącz dostęp dla mniej bezpiecznych aplikacji na koncie Gmail.

Wygląda na to, że ostatnio Google zmieniło swoją politykę bezpieczeństwa. Najwyżej oceniana odpowiedź nie działa, dopóki nie zmienisz ustawień konta zgodnie z opisem tutaj: https://support.google.com/accounts/answer/6010255?hl=plwprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Od marca 2016 r. Google ponownie zmieniło lokalizację ustawienia!


4
To zadziałało dla mnie. I dotyczy również. Nie jestem pewien, czy chcę wyłączyć to zabezpieczenie. Może trzeba przemyśleć ...
Sully,

4
Z punktu widzenia bezpieczeństwa lepiej włączyć weryfikację dwuetapową, a następnie wygenerować i użyć hasła do aplikacji - zobacz Jak wysłać wiadomość e-mail w .Net zgodnie z nowymi zasadami bezpieczeństwa?
Michael Freidgeim

2
@BCS Software, inmy program, użytkownik wstawia e-maile, których mój program musi użyć, aby wysłać wiadomość. Jak mogę sprawić, by użytkownik poczty e-mail mógł wysłać wiadomość e-mail, nawet jeśli włączone jest uwierzytelnianie dwuskładnikowe?
Alaa „

Jest to to samo ustawienie, które należy zmienić, jeśli chcesz używać klienta Microsoft Outlook (na komputerze stacjonarnym, telefonie komórkowym itp.) Do wysyłania / odbierania wiadomości e-mail za pośrednictwem Gmaila Google.
Brett Rigby

41

To jest, aby wysłać e-mail z załącznikiem. Prosty i krótki ..

źródło: 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 może blokować próby logowania z niektórych aplikacji lub urządzeń, które nie stosują nowoczesnych standardów bezpieczeństwa. Ponieważ te aplikacje i urządzenia są łatwiejsze do włamania, zablokowanie ich pomaga utrzymać bezpieczeństwo konta.

Niektóre przykłady aplikacji, które nie obsługują najnowszych standardów bezpieczeństwa, obejmują:

  • Aplikacja Mail na iPhonie lub iPadzie z systemem iOS 6 lub starszym
  • Aplikacja Poczta na telefonie z systemem Windows wcześniejszym niż wersja 8.1
  • Niektóre klienty poczty Desktop, takie jak Microsoft Outlook i Mozilla Thunderbird

Dlatego musisz włączyć mniej bezpieczne logowanie na swoim koncie Google.

Po zalogowaniu się na konto Google przejdź do:

https://myaccount.google.com/lesssecureapps
lub
https://www.google.com/settings/security/lesssecureapps

W języku C # możesz użyć następującego kodu:

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


16

Oto moja wersja: „ Wyślij e-mail w C # za pomocą Gmaila ”.

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
Chociaż Twój artykuł może w rzeczywistości odpowiedzieć na pytanie, lepiej byłoby zawrzeć w nim istotne części odpowiedzi i podać odnośnik. Przepełnienie stosu jest tak samo przydatne, jak jego pytania i odpowiedzi, a jeśli Twój blog prowadzi do awarii lub zmienia się adresy URL, ta odpowiedź staje się bezużyteczna. Dzięki!
sarnold

14

Mam nadzieję, że ten kod będzie działał dobrze. Możesz spróbować.

// 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
wiadomość send_mail = new MailMessage (); Jak ta linia ma działać? Nie można pośrednio przekonwertować „System.Net.Mail.MailMessage” na „System.Windows.Forms.Message”
Debaprasad

9

Uwzględnij to,

using System.Net.Mail;

I wtedy,

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

Źródło : Wyślij e-mail w ASP.NET C #

Poniżej znajduje się przykładowy działający kod do wysyłania poczty za pomocą C #, w poniższym przykładzie korzystam z serwera smtp Google.

Kod jest dość oczywisty, zastąp adres e-mail i hasło wartościami adresu e-mail i hasła.

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

Zamiast var użyłem nazw klas takich jak NetworkCredential, MailMessage i SmtpClient. To działa dla mnie.
Test Jui

7

Jeśli chcesz wysłać e-mail w tle, wykonaj następujące czynności

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

      //Place your Code here 

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

i dodaj przestrzeń nazw

using System.Threading;


5

Spróbuj tego,

    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

użyj tego sposobu

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

Nie zapomnij tego:

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

4

Aby uniknąć problemów związanych z bezpieczeństwem w Gmailu, należy najpierw wygenerować hasło do aplikacji w ustawieniach Gmaila i możesz użyć tego hasła zamiast prawdziwego hasła, aby wysłać wiadomość e-mail, nawet jeśli korzystasz z weryfikacji dwuetapowej.


3

Zmiana nadawcy w e-mailu Gmail / Outlook.com:

Aby zapobiec fałszowaniu - Gmail / Outlook.com nie pozwala na wysyłanie z nazwy dowolnego konta użytkownika.

Jeśli masz ograniczoną liczbę nadawców, możesz postępować zgodnie z tymi instrukcjami, a następnie ustawić Frompole na ten adres: Wysyłanie poczty z innego adresu

Jeśli chcesz wysłać z dowolnego adresu e-mail (takiego jak formularz zwrotny na stronie internetowej, na której użytkownik wprowadza swój adres e-mail, a nie chcesz, aby wysyłał Ci bezpośrednio e-mailem), możesz:

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

Pozwoliłoby to po prostu nacisnąć „odpowiedz” na swoim koncie e-mail, aby odpowiedzieć fanowi zespołu na stronie z opiniami, ale nie otrzymaliby twojego prawdziwego e-maila, co prawdopodobnie doprowadziłoby do tony spamu.

Jeśli jesteś w kontrolowanym środowisku, działa to świetnie, ale pamiętaj, że widziałem niektórych klientów e-mail wysyłających na adres od, nawet gdy określono odpowiedź na (nie wiem, który).


3

Miałem ten sam problem, ale problem został rozwiązany, przechodząc do ustawień zabezpieczeń Gmaila i zezwalając na mniej bezpieczne aplikacje . Kod Domenic & Donny działa, ale tylko jeśli włączysz to ustawienie

Jeśli jesteś zalogowany (w Google), możesz skorzystać z tego linku i przełączyć „Włącz” na „Dostęp dla mniej bezpiecznych aplikacji”


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

Oto jedna metoda wysyłania poczty i uzyskiwania poświadczeń z pliku 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;
    }

}

I odpowiednia sekcja w pliku 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

Spróbuj tego

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

Problemem było to, że moje hasło zawierało ukośnik „\” , który skopiowałem wklejając, nie wiedząc, że spowoduje to problemy.


1

Kopiowanie z innej odpowiedzi , powyższe metody działają, ale Gmail zawsze zastępuje wiadomości e-mail „od” i „odpowiedz na” z faktycznym kontem wysyłającym Gmail. najwyraźniej istnieje jednak obejście:

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

„3. Na karcie Konta kliknij link„ Dodaj kolejny adres e-mail, którego jesteś właścicielem ”, a następnie zweryfikuj go”

A może to

Aktualizacja 3: Czytelnik Derek Bennett mówi: „Rozwiązaniem jest przejście do ustawień Gmaila: Konta i„ Ustaw jako domyślne ”konto inne niż konto Gmail. Spowoduje to, że Gmail ponownie przepisze pole Od niezależnie od adresu e-mail konta domyślnego adres to."


1

Można spróbować Mailkit. Zapewnia lepszą i zaawansowaną funkcjonalność wysyłania poczty. Możesz znaleźć więcej z tego Oto przykład

    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);
    }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.