Datum:
Hallo, ich benötige ein Programm, welches mir Maschinendaten per E-Mail sendet. Bis jetzt kann das Programm nur den String, der beim Aufruf übergeben wird, als Text senden und eine Datei anhängen. Jetzt soll aber zusätzlich (unten angehängt) der Inhalt der *.txt-Datei ausgelesen werden und in den Mailtext eingefügt werden. Wie kann man das in C# machen?
if (args.Length==1)
{
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
System.Net.NetworkCredential cred = new System.Net.NetworkCredential(account, pw);
mail.To.Add(an);
mail.Subject = betreff;
mail.From = new System.Net.Mail.MailAddress(von, von_name);
mail.IsBodyHtml = true;
mail.Body = args[0];
mail.Attachments.Add(new System.Net.Mail.Attachment("C:\\TEMP\\mailfile.txt"));
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com");
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Credentials = cred;
smtp.Port = 587;
smtp.Send(mail);
}
|
Datum:
Du hast doch eigentlich alles beisammen? Warum hängst du den Inhalt der Datei nicht einfach an "mail.Body" an?
Datum:
Indem man die Datei öffnet in einen Puffer einliest und den dann in den Mailtext einfügt. Wo ist das Problem, das ist eine ganz normale Programmieraufgabe, wenn man die ersten 5 Kapitel eines C# Buchs durchgearbeitet hat. Die Frage ist, willst du programmieren (lernen), oder suchst du jemanden der dir ein Programm schreibt?
Datum:
Sharping schrieb: > Du hast doch eigentlich alles beisammen? Warum hängst du den Inhalt der > Datei nicht einfach an "mail.Body" an? Genau die Frage ist nur, ob ich den Inhalt erst in einen Puffer legen muss, oder nicht. Ich programmiere schon lange in C, aber C# ist für mich noch Neuland. In C würde ich mir eine Schleife basteln, die bis zum Ende der Datei jeweils n Mal bis zum Ende der Zeile einliest, und den gelesenen String mit sprintf zusammenfügt. Aber ich glaube, das geht noch einfacher.
Datum:
Was erwartet mail.body für einen Datentyp? Ich habe noch nichts mit c# gemacht vermute aber mal eine Instanz eines Klasse String. Und diese Stringklasse hat bestimmt eine dynamische Längenverwaltung und Methoden zum appenden (anhängen) von Text. Vieleicht gibt es auch einen StringBuffer wie im Java. Die Klassen musst du dir suchen und anschauen. Genau wie die Reader und Writer Klassen zum lesen und Schreiben von Dateien.
Datum:
Hubert schrieb: > müsste Konjunktiv heisst nicht wissen! Glauben hat beim programmieren nichts verloren. ist es ein char[] oder eine Instanz einer Klasse "String" Schau es dir an und schau dir dann die Klassen an. Anders wirst du c# nicht lernen. Die Vorteile der modernen OO Sprachen liegen in den mächtigen Klassenbibliotheken, die dir so viel Arbeit abnehmen. Die sonstige Programmierung ist immer noch wie in C, nur daß du für viele Probleme schon fertige Methoden und Klassen hast.
Datum:
Udo Schmitt schrieb: > ist es ein char[] oder eine Instanz einer Klasse "String" > > Schau es dir an und schau dir dann die Klassen an. >>public string Body { get; set; } >>Typ: System.String Es ist also ein String. Das mit den vielen Klassenbibliotheken weiß ich ja, deshalb suche ich ja nach einer schönen Lösung, die mir an den Body den Inhald der TXT-Datei hängt.
Datum:
schau dir mal den streamreader an
Datum:
string datei_inhalt=File.ReadAllText("dateipfad"); |
ggf. noch Encoding angeben ;D
Datum:
Bernd H. schrieb: > string datei_inhalt=File.ReadAllText("dateipfad");ggf. noch Encoding angeben ;D Prima, damit und mit der msdn-Hilfe habe ich etwas hinbekommen. Bis dahin habe ich es die ganze Zeit mit StreamReader und ReadBlock probiert. Hab's aber nicht hinbekommen. Wäre das für meinen Fall so oder so die falsche Funktion? Hat Encoding auch etwas damit zu tun, dass das der Befehl Zeilenumbrüche in der Textdatei ignoriert?
Datum:
Hubert schrieb: > at Encoding auch etwas damit zu tun, dass das der Befehl Zeilenumbrüche > in der Textdatei ignoriert? Fehler selber bemerkt: Das liegt am HTML-Format. Wenn man dies ausschaltet, geht es. Ist ja auch logisch :-D Eiun großes Dankeschön!



