2017-08-16 1 views
0

Ich habe eine Liste von Daten aus einer Datenbank und ich habe E-Mail-IDs in der Datenbank, ich muss E-Mail an diese IDs senden, wenn sein Aufbewahrungsdatum morgen bedeutet, dass ich eine Erinnerungs-E-Mail als Erinnerung an heute senden muss, möchte ich Email senden, und ich werde Dienst nutzt es täglich zu senden, aber mein E-Mail-Teil working..below ist nicht mein Code ..Wie sende ich E-Mails mit SMTP in C#?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Mail; 
using System.Text; 
using System.Threading.Tasks; 


namespace SendingEmail 
{ 
    public class SendingMail 
    { 
     public static void SendMail(string recipient, string subject, string 
     body, string attachmentFilename) 
     { 
      //method to send email 
      MailMessage mail = new MailMessage(); 
      try 
      { 
       SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com", 587); 
       SmtpServer.EnableSsl = true; 
       SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "my password"); 
       string From = "my [email protected]"; 
       string To = "email.com"; 
       mail.Subject = "Test Mail - 1"; 
       mail.Body = "mail with attachment"; 
       MailMessage msg = new MailMessage(From, To); 
       System.Net.Mail.Attachment attachment; 
       attachment = new System.Net.Mail.Attachment 
       (@"C:\Users\rahul.chakrabarty\Desktop\logg.txt"); 
       mail.Attachments.Add(attachment); 
       SmtpServer.Send(mail); 
      } 
      //To cathch Exception 
      catch (Exception ex) 
      { 
       Console.WriteLine("unable to send" + ex); 
      } 
     } 
    } 
} 

Mein Fehler sendsystem.InvalidOperationException“nicht in der Lage ist: A von Adresse muss sein specified“.. Das ist mein Fehler

+0

Ich hätte diese Kommentare entfernt, die die Formatierung beeinflussen tbh; sie sind nur Lärm –

+0

AFAIK eine E-Mail-Adresse kann keine Leerzeichen haben. change 'string From =" meine [email protected] ";' to 'string From =" [email protected] ";' –

+0

Ich nahm an, dass nur er seine Email-Adresse verschleierte .. –

Antwort

1

Sie sagte

String from = "my [email protected] 

Aber nirgendwo haben Sie tatsächlich diese Zeichenfolge an die mail.From Eigenschaft zugewiesen - Sie haben eine neue Mailmessage, dass gegangen und aus Adresse, und nannten es msg:

MailMessage msg = new MailMessage(From, To) 

aber Sie senden nicht die msg Mail , sind das Senden Sie die mail mail:

SmtpServer.Send(mail); 

das gleiche Problem besteht mit der auf der mail Variable

Grundsätzlich Adresse zu, die Kabeljau Alles ist durcheinander: Sie machen ZWEI MailMessage-Objekte, stellen die Hälfte der notwendigen Dinge auf die eine, die andere Hälfte der notwendigen Dinge auf die andere und versuchen dann, eine von ihnen mit unvollständigen Details zu senden. Es ist so, als ob Sie zwei verschiedene Tutorials zusammenkopiert und eingefügt hätten, aber nicht genug von ihnen bekommen, um eine komplette MailMessage zum Senden bereit zu haben. Ich hätte das alles für Sie reparieren können und funktionierenden Code gepostet, aber ich habe nichts t aus zwei Gründen: 1) es ist sehr einfach, diese kleinen Änderungen selbst zu tun, und 2) Ich will, dass Sie es als Lernübung tun, anstatt nur die Antwort zu geben :)

Stellen Sie sicher, dass Sie nicht tun Setzen Sie einen Platz in der E-Mail-Adresse

+0

yeah tut mir leid, ich habe Änderungen so i dint sehen, aber obwohl ich jetzt korrigiert ,, ich dint bekomme keine Ausnahme..aber ich dint bekomme anymail zu –

+0

Überprüfen Sie die Junk-Mail? Test-Mails mit Anhängen sehen so ähnlich aus wie "Hier ist deine UPS-Rechnung

+0

bekommen Fehler als "unfähig zu sendsystem.net.mail.smtpException" –

Verwandte Themen