Mengirim email dalam .NET melalui Gmail

876

Alih-alih mengandalkan tuan rumah saya untuk mengirim email, saya lebih memilih mengirim pesan email menggunakan akun Gmail saya . Email adalah email yang dipersonalisasi untuk band yang saya mainkan di acara saya.

Apakah mungkin untuk melakukannya?

Mike Wills
sumber
1
< systemnetmail.com > mungkin adalah situs terlengkap yang tidak masuk akal yang didedikasikan untuk satu namespace .NET ... tetapi memiliki SEMUA yang Anda ingin tahu tentang mengirim email melalui. NET, baik itu ASP.NET atau Desktop. < systemwebmail.com > adalah URL asli di pos, tetapi tidak boleh digunakan untuk .NET 2.0 dan di atasnya.
Adam Haile
13
Jika Anda menggunakan ASP.Net Mvc, saya akan merekomendasikan untuk melihat MvcMailer: github.com/smsohan/MvcMailer/wiki/MvcMailer-Langkah-dengan-Langkah-Gunakan
noocyte
Saya punya contoh yang bagus tentang bagaimana melakukan ini di situs saya jarloo.com/gmail-in-c
Kelly
cara mengirim file menggunakan kode ini?
Ranadheer Reddy
kemungkinan duplikat Mengirim email melalui server SMTP Gmail dengan C #
George Duckett

Jawaban:

1065

Pastikan untuk menggunakan System.Net.Mail, bukan yang usang System.Web.Mail. Melakukan SSL dengan System.Web.Mailadalah kekacauan ekstensi hacky.

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

var fromAddress = new MailAddress("[email protected]", "From Name");
var toAddress = new MailAddress("[email protected]", "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);
}
Domenik
sumber
49
Anda masih bisa membuat pengguna tidak masuk kesalahan jika Google tiba-tiba memutuskan Anda telah mengirim terlalu banyak dalam jumlah menit xx terakhir. Anda harus selalu menambahkan trySend, jika kesalahan tidur sebentar, lalu coba lagi.
Jason Short
72
Catatan menarik: Jika Anda menukar 'UseDefaultCredentials = false,' dan 'Credentials = ...' itu tidak akan diautentikasi.
Nathan Wheeler
13
Tidak ada masalah dengan SPF menggunakan metode ini. Setiap klien email dapat dikonfigurasi untuk melakukan hal ini. Anda mungkin mendapatkan masalah jika Anda menggunakan server Anda sendiri (yaitu sesuatu yang lain dari smtp.gmail.com) dengan [email protected]sebagai pengirim. Btw: smtp.gmail.comsecara otomatis menimpa alamat pengirim jika bukan milik Anda.
Meinersbur
24
Saya mengalami kesulitan mendapatkan ini bekerja bahkan dengan mencoba berbagai tweak. Seperti yang disarankan pada posting terkait, saya menemukan bahwa sebenarnya antivirus saya yang mencegah pengiriman email berhasil. Antivirus yang dimaksud adalah McAffee, dan "Access Protection" -nya memiliki kategori "Antivirus Standard Protection" yang memiliki aturan "Cegah cacing surat massal agar tidak mengirim email". Tweaking / nonaktifkan aturan itu membuat kode ini berfungsi untuk saya!
yourbuddypal
18
Saya mendapatkan pesan kesalahan Diperlukan Otentikasi 5.5.1 sampai saya menyadari saya sedang menguji dengan akun (pribadi saya) yang memiliki dua faktor otentikasi dihidupkan. Setelah saya menggunakan akun yang tidak memilikinya, itu berfungsi dengan baik. Saya juga bisa membuat kata sandi untuk aplikasi saya yang saya uji dari dalam acct pribadi saya, tetapi saya tidak ingin melakukan itu.
Nick DeVore
153

Jawaban di atas tidak bekerja. Anda harus mengatur DeliveryMethod = SmtpDeliveryMethod.Networkatau itu akan kembali dengan kesalahan " klien tidak diautentikasi ". Juga selalu merupakan ide bagus untuk membuat batas waktu.

Kode yang direvisi:

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

var fromAddress = new MailAddress("[email protected]", "From Name");
var toAddress = new MailAddress("[email protected]", "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);
}
Donny V.
sumber
3
Menarik; ini bekerja pada mesin saya (TM). Tetapi karena ini tampaknya masuk akal, saya akan menambahkannya ke jawaban saya.
Domenic
3
Hmm tebakan saya adalah SmtpDeliveryMethod.Network adalah default, tapi mungkin defaultnya berubah ketika berjalan di IIS --- apakah itu yang Anda lakukan?
Domenic
3
Saya menggunakan kode yang sama dalam aplikasi Konsol, ini karena kesalahan "Kegagalan mengirim surat."
Karthikeyan P
5
Jawaban ini tidak berfungsi. Silakan, lihat pertanyaan stackoverflow.com/questions/34851484/…
110

Untuk jawaban lain agar berfungsi "dari server" pertama Nyalakan Akses untuk aplikasi yang kurang aman di akun gmail.

Sepertinya baru-baru ini google mengubah kebijakan keamanannya. Jawaban berperingkat teratas tidak lagi berfungsi, sampai Anda mengubah pengaturan akun Anda seperti dijelaskan di sini: https://support.google.com/accounts/answer/6010255?hl=id-GBmasukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Pada Maret 2016, google mengubah lokasi pengaturan lagi!

Perangkat Lunak BCS
sumber
4
Ini berhasil untuk saya. Dan juga memprihatinkan. Tidak yakin saya ingin mematikan keamanan itu. Mungkin perlu memikirkan kembali ...
Sully
4
Dari sudut pandang keamanan lebih baik untuk mengaktifkan Verifikasi 2 langkah dan kemudian menghasilkan dan menggunakan kata sandi aplikasi - lihat Cara mengirim email di .Net sesuai dengan kebijakan keamanan baru?
Michael Freidgeim
2
@BCS Software, dalam program saya, pengguna memasukkan email apa pun yang harus digunakan oleh program saya untuk mengirim pesan. Jadi, bagaimana saya bisa membuat pengguna email dapat mengirim email bahkan jika otentikasi 2-faktor dihidupkan ??
Alaa
Ini adalah pengaturan yang sama yang harus Anda ubah jika Anda ingin menggunakan klien Microsoft Outlook (di desktop, ponsel, dll) untuk mengirim / menerima email melalui Gmail Google.
Brett Rigby
41

Ini untuk mengirim email dengan lampiran .. Sederhana dan pendek ..

sumber: 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 [email protected]");
    mail.To.Add("[email protected]");
    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 [email protected]", "your password");
    SmtpServer.EnableSsl = true;

    SmtpServer.Send(mail);

}
Ranadheer Reddy
sumber
21

Google dapat memblokir upaya masuk dari beberapa aplikasi atau perangkat yang tidak menggunakan standar keamanan modern. Karena aplikasi dan perangkat ini lebih mudah untuk dibobol, memblokirnya membantu menjaga keamanan akun Anda.

Beberapa contoh aplikasi yang tidak mendukung standar keamanan terbaru meliputi:

  • Aplikasi Mail di iPhone atau iPad Anda dengan iOS 6 atau lebih rendah
  • Aplikasi Mail di ponsel Windows Anda sebelum rilis 8.1
  • Beberapa klien surat Desktop seperti Microsoft Outlook dan Mozilla Thunderbird

Karena itu, Anda harus mengaktifkan Sign-In Kurang Aman di akun google Anda.

Setelah masuk ke akun google, buka:

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

Di C #, Anda dapat menggunakan kode berikut:

using (MailMessage mail = new MailMessage())
{
    mail.From = new MailAddress("[email protected]");
    mail.To.Add("[email protected]");
    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 protected]", "password");
        smtp.EnableSsl = true;
        smtp.Send(mail);
    }
}
mjb
sumber
17

Agar saya berfungsi, saya harus mengaktifkan akun gmail saya sehingga memungkinkan aplikasi lain untuk mendapatkan akses. Ini dilakukan dengan "mengaktifkan aplikasi yang kurang aman" dan juga menggunakan tautan ini: https://accounts.google.com/b/0/DisplayUnlockCaptcha

Mark Homans
sumber
16

Ini versi saya: " Kirim Email Dalam C # Menggunakan Gmail ".

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

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

      //Specify senders gmail address
      string SendersAddress = "[email protected]";
      //Specify The Address You want to sent Email To(can be any valid email address)
      string ReceiversAddress = "[email protected]";
      //Specify The password of gmial account u are using to sent mail(pw of [email protected])
      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();
     }
    }
   }
 }
tehie
sumber
8
Walaupun artikel Anda mungkin sebenarnya menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi. Stack Overflow hanya berguna sebagai pertanyaan dan jawaban, dan jika host blog Anda turun atau URL Anda dipindahkan, jawaban ini menjadi tidak berguna. Terima kasih!
sarnold
14

Saya harap kode ini akan berfungsi dengan baik. Anda bisa mencoba.

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

string fromAddress = "[email protected]";
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("[email protected]");
//address to which mail will be sent.           
send_mail.To.Add(new MailAddress("[email protected]");
//subject of the mail.
send_mail.Subject = "put any subject here";

send_mail.Body = messageBody;
client.Send(send_mail);
Premdeep Mohanty
sumber
2
message send_mail = new MailMessage (); Bagaimana garis ini seharusnya bekerja? Anda tidak dapat secara implisit mengubah 'System.Net.Mail.MailMessage' ke 'System.Windows.Forms.Message'
Debaprasad
9

Sertakan ini,

using System.Net.Mail;

Lalu,

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("[email protected]","password");
client.EnableSsl = true;

client.Send(sendmsg);
GOPI
sumber
8

Sumber : Kirim email dalam ASP.NET C #

Di bawah ini adalah contoh kode kerja untuk mengirim email menggunakan C #, dalam contoh di bawah ini saya menggunakan server smtp google.

Kode ini cukup jelas, ganti email dan kata sandi dengan nilai email dan kata sandi Anda.

public void SendEmail(string address, string subject, string message)
{
    string email = "[email protected]";
    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);
}
Yasser Shaikh
sumber
Alih-alih var, saya telah menggunakan nama kelas seperti NetworkCredential, MailMessage dan SmtpClient. Ini bekerja untuk saya.
Jui Test
7

Jika Anda ingin mengirim email latar belakang, silakan lakukan di bawah ini

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

      //Place your Code here 

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

dan tambahkan namespace

using System.Threading;
RAJESH KUMAR
sumber
5

Coba ini,

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

            mail.From = new MailAddress("[email protected]");
            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());
        }
    }
Solusi Perangkat Lunak Trimantra
sumber
4

gunakan cara ini

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("[email protected]","MyPassWord");
client.Send(sendmsg);

Jangan lupakan ini:

using System.Net;
using System.Net.Mail;
alireza amini
sumber
4

Untuk menghindari masalah keamanan di Gmail, Anda harus membuat kata sandi aplikasi terlebih dahulu dari pengaturan Gmail Anda dan Anda dapat menggunakan kata sandi ini alih-alih kata sandi asli untuk mengirim email bahkan jika Anda menggunakan verifikasi dua langkah.

Sayed Uz Zaman
sumber
3

Mengubah pengirim di email Gmail / Outlook.com:

Untuk mencegah spoofing - Gmail / Outlook.com tidak akan membiarkan Anda mengirim dari nama akun pengguna yang sewenang-wenang.

Jika Anda memiliki jumlah pengirim yang terbatas, Anda dapat mengikuti instruksi ini dan kemudian mengatur Frombidang ke alamat ini: Mengirim email dari alamat yang berbeda

Jika Anda ingin mengirim dari alamat email yang sewenang-wenang (seperti formulir umpan balik di situs web tempat pengguna memasukkan email mereka dan Anda tidak ingin mereka mengirim email langsung kepada Anda) tentang hal terbaik yang dapat Anda lakukan adalah ini:

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

Ini akan membiarkan Anda hanya menekan 'balas' di akun email Anda untuk membalas penggemar band Anda di halaman umpan balik, tetapi mereka tidak akan mendapatkan email Anda yang sebenarnya yang akan mengarah ke satu ton spam.

Jika Anda berada dalam lingkungan yang terkendali, ini berfungsi dengan baik, tetapi harap perhatikan bahwa saya telah melihat beberapa klien email mengirim ke alamat from bahkan ketika reply-to ditentukan (saya tidak tahu yang mana).

Simon_Weaver
sumber
3

Saya memiliki masalah yang sama, tetapi diselesaikan dengan masuk ke pengaturan keamanan gmail dan Mengizinkan aplikasi Kurang Aman . Kode dari Domenic & Donny berfungsi, tetapi hanya jika Anda mengaktifkan pengaturan itu

Jika Anda masuk (ke Google), Anda dapat mengikuti tautan ini dan beralih "Aktifkan" untuk "Akses untuk aplikasi yang kurang aman"

DarkPh03n1X
sumber
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 = "[email protected]";
      //Specify The Address You want to sent Email To(can be any valid email address)
      string ReceiversAddress = "[email protected]";
      //Specify The password of gmial account u are using to sent mail(pw of [email protected])
      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();
     }
}
}
}
Moin Shirazi
sumber
2

Berikut adalah salah satu metode untuk mengirim email dan mendapatkan kredensial dari 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;
    }

}

Dan bagian yang sesuai di web.config:

<appSettings>
    <add key="mailCfg" value="[email protected]"/>
</appSettings>
<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" from="[email protected]">
      <network defaultCredentials="false" host="mail.exapmple.com" userName="[email protected]" password="your_password" port="25"/>
    </smtp>
  </mailSettings>
</system.net>
ITURTEV
sumber
2

Coba yang ini

public static bool Send(string receiverEmail, string ReceiverName, string subject, string body)
{
        MailMessage mailMessage = new MailMessage();
        MailAddress mailAddress = new MailAddress("[email protected]", "Sender Name"); // [email protected] = 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("[email protected]", "pass")   // [email protected] = 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;
}
reza.cse08
sumber
1

Masalahnya bagi saya adalah kata sandi saya memiliki "blackslash" hitam di dalamnya, yang saya salin disisipkan tanpa disadari akan menyebabkan masalah.

Satbir Kira
sumber
1

Menyalin dari jawaban lain , metode di atas berfungsi tetapi gmail selalu menggantikan email "from" dan "reply to" dengan akun gmail pengirim yang sebenarnya. namun ternyata ada pekerjaan di sekitar:

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

"3. Di Tab Akun, Klik tautan" Tambahkan alamat email lain yang Anda miliki "lalu verifikasi"

Atau mungkin ini

Pembaruan 3: Pembaca Derek Bennett mengatakan, "Solusinya adalah masuk ke Pengaturan gmail Anda: Akun dan" Jadikan default "akun selain akun gmail Anda. Ini akan menyebabkan gmail untuk menulis ulang bidang Dari dengan apa pun email akun default itu alamatnya adalah. "

rogerdpack
sumber
1

Anda bisa mencoba Mailkit. Ini memberi Anda fungsionalitas yang lebih baik dan lebih maju untuk mengirim email. Anda dapat menemukan lebih banyak dari ini. Berikut ini adalah contohnya

    MimeMessage message = new MimeMessage();
    message.From.Add(new MailboxAddress("FromName", "[email protected]"));
    message.To.Add(new MailboxAddress("ToName", "[email protected]"));
    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);
    }
Naveen
sumber