Frage Senden von E-Mails in .NET über Google Mail


Anstatt sich auf meinen Host zu verlassen, um E-Mails zu versenden, dachte ich daran, die E-Mail-Nachrichten über mein Google Mail-Konto zu senden. Die E-Mails sind personalisierte E-Mails an die Bands, die ich in meiner Show spiele. Ist es möglich zu tun?


754
2017-08-28 13:28


Ursprung


Antworten:


Achten Sie darauf, zu verwenden System.Net.Mailnicht die veralteten System.Web.Mail. SSL mit machen System.Web.Mail ist eine grobe Unordnung von Hacky-Erweiterungen.

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



Die obige Antwort funktioniert nicht. Sie müssen einstellen DeliveryMethod = SmtpDeliveryMethod.Network oder es wird mit einem "Client wurde nicht authentifiziert"Fehler. Es ist auch immer eine gute Idee, eine Zeitüberschreitung zu setzen.

Überarbeiteter Code:

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



Für die anderen Antworten zuerst "von einem Server" arbeiten Aktivieren Sie den Zugriff für weniger sichere Apps im Google Mail-Konto.

Sieht so aus, als hätte Google kürzlich seine Sicherheitsrichtlinien geändert. Die am besten bewertete Antwort funktioniert nicht mehr, bis Sie Ihre Kontoeinstellungen wie hier beschrieben ändern: https://support.google.com/accounts/answer/6010255?hl=de-DEenter image description here

enter image description here

Ab März 2016 hat Google den Einstellungsort erneut geändert!


71
2017-09-08 12:09



http://www.systemnetmail.com/ ist wahrscheinlich die absurdeste vollständige Seite, die einem gewidmet ist Single .NET Namespace ... aber es hat ALLES, was Sie jemals über das Versenden von Mail via .NET wissen möchten, sei es ASP.NET oder Desktop.

http://www.systemwebmail.com/ war die ursprüngliche URL im Post, sollte aber nicht für .NET 2.0 und höher verwendet werden.


64
2017-08-28 13:36



Dies ist eine E-Mail mit Anhang senden .. Einfach und kurz ..

Quelle: 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 blockiert möglicherweise Anmeldeversuche von einigen Apps oder Geräten, die keine modernen Sicherheitsstandards verwenden. Da es einfacher ist, diese Apps und Geräte zu öffnen, hilft das Blockieren dieser Apps, Ihr Konto sicherer zu machen.

Einige Beispiele für Apps, die die neuesten Sicherheitsstandards nicht unterstützen, sind:

  • Die Mail App auf Ihrem iPhone oder iPad mit iOS 6 oder niedriger
  • Die Mail-App auf Ihrem Windows Phone vor der Version 8.1
  • Einige Desktop-Mail-Clients wie Microsoft Outlook und Mozilla Thunderbird

Daher müssen Sie aktivieren Weniger sichere Anmeldung in deinem Google-Konto.

Nach der Anmeldung im Google-Konto gehen Sie zu:

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

In C # können Sie den folgenden Code verwenden:

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



Hier ist meine Version: "Senden Sie E-Mail in C # mit 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



Damit es funktioniert, musste ich mein Google Mail-Konto aktivieren, um anderen Apps den Zugriff zu ermöglichen. Dies geschieht mit den "weniger sicheren Apps aktivieren" und ebenfalls mit diesem Link: https://accounts.google.com/b/0/DisplayUnlockCaptcha


13
2018-01-03 15:25



Ich hoffe, dass dieser Code gut funktioniert. Sie können es versuchen.

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



Fügen Sie dies ein,

using System.Net.Mail;

Und dann,

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



Quelle : E-Mail in ASP.NET C # senden

Im Folgenden finden Sie einen Beispielcode zum Senden einer E-Mail mit C #. Im folgenden Beispiel verwende ich den SMTP-Server von Google.

Der Code ist ziemlich selbsterklärend, ersetze E-Mail und Passwort durch deine E-Mail- und Passwortwerte.

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

6
2017-08-22 12:29