Pertanyaan Mengirim email di .NET melalui Gmail


Daripada mengandalkan host saya untuk mengirim email, saya berpikir untuk mengirim pesan email menggunakan akun Gmail saya. Email adalah email yang dipersonalisasi untuk band yang saya mainkan di acara saya. Apakah mungkin untuk dilakukan?


754
2017-08-28 13:28


asal


Jawaban:


Pastikan untuk menggunakannya System.Net.Mail, bukan yang ditinggalkan System.Web.Mail. Melakukan SSL dengan System.Web.Mail adalah kekacauan besar ekstensi peretasan.

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

956
2017-08-28 14:08



Jawaban di atas tidak berfungsi. Anda harus mengatur DeliveryMethod = SmtpDeliveryMethod.Network atau akan kembali dengan "klien tidak diautentikasi"kesalahan. Juga selalu merupakan ide yang baik untuk memberi batas waktu.

Kode yang direvisi:

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

138
2018-01-28 22:01



Untuk jawaban lain untuk bekerja "dari server" pertama Aktifkan Akses untuk aplikasi yang kurang aman di akun gmail.

Sepertinya baru-baru ini Google mengubah kebijakan keamanannya. Jawaban teratas tidak berfungsi lagi, sampai Anda mengubah pengaturan akun seperti yang dijelaskan di sini: https://support.google.com/accounts/answer/6010255?hl=en-GBenter image description here

enter image description here

Mulai Maret 2016, Google mengubah lokasi pengaturan lagi!


71
2017-09-08 12:09



http://www.systemnetmail.com/ mungkin adalah situs lengkap yang paling tidak masuk akal yang didedikasikan untuk tunggal .NET namespace ... tetapi memiliki SEMUA yang Anda mungkin ingin tahu tentang mengirim email melalui .NET, baik itu ASP.NET atau Desktop.

http://www.systemwebmail.com/ adalah URL asli di pos, tetapi tidak boleh digunakan untuk .NET 2.0 dan di atasnya.


64
2017-08-28 13:36



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

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

}

38
2018-05-28 12:41



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

Beberapa contoh aplikasi yang tidak mendukung standar keamanan terbaru termasuk:

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

Karena itu, Anda harus mengaktifkan Kurang Aman Masuk 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@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
2017-08-09 07:28



Ini adalah versi saya: "Kirim Email Di 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 = "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();
     }
    }
   }
 }

14
2017-10-17 21:19



Bagi saya untuk membuatnya bekerja, 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


13
2018-01-03 15:25



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

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

12
2017-10-15 10:00



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

client.Send(sendmsg);

7
2017-10-09 12:39