Hallo,
Ich möchte aus meinem c# code ein mail inkl. Attachment verschicken. Dazu habe ich in meiner app.config den smtp host eingetragen um die property nicht extra auslesen zu müssen. Leider werden die settings ignoriert und ich bekomme weiter unten angeführte Exception.
Ich habe in meiner app.config folgendes definiert:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
...
</configSections>
<system.net>
<mailSettings>
<smtp>
<network host="Srv-wdev04" defaultCredentials="true"/>
</smtp>
</mailSettings>
</system.net>
<applicationSettings>
...
</applicationSettings>
</configuration>
und folgenden Code in meiner Klasse:
private static int SendMail(OutputChannel WorkingChannel, byte[] SignedDocument, string FileName)
{
try
{
MailMessage mail = new MailMessage();
mail.To.Add(WorkingChannel.Adress); // recipient
mail.Subject = "xxx"; // subject
mail.Body = "bla bla bla "; // mailtext
mail.From = new MailAddress("coderz@xxx.at"); // sender
// Attachment hinzufügen
MemoryStream stream = new MemoryStream(SignedDocument);
Attachment MyAttachment = new Attachment(stream, FileName);
mail.Attachments.Add(MyAttachment);
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.Send(mail);
}
catch (Exception ex)
{
return -1;
}
return 0;
}
hier die Exception:
System.InvalidOperationException: The SMTP host was not specified.
at System.Net.Mail.SmtpClient.CheckHostAndPort()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
vielen dank im voraus für eure hilfe
lg
as
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
Da fehlt noch dein Host im SmptClient. Woher soll er sonst wissen worüber er
die Mails versendet?!
Dokumentation in MSDN : Klick mich
greetz kubi.
Edit : Link war falsch.
du teilst dem smptclient object ja auch nicht mit welcher der host ist
in etwa so
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("Srv-wdev04");
//edit: zu spät
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."
huhu,
Es geht lt. Doku auch ohne den Mail-Host. Denn dann wird der auf dem Server eingetragene Host verwendet (rsp. der in der entsprechenden *.config) oder der lokale SMTP-Server - daher ja die Frage.
zum ersten Link: klick mich
Initialisiert eine neue Instanz der SmtpClient-Klasse mit den Einstellungen der Konfigurationsdatei
Warum er es bei Dir nicht macht weiss ich leider nicht.
🙂
Xynratron
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
Wie Xynratron richtig sagt, möchte ich den in seinem msdn link beschriebenen weg gehen.
Definition der smtp settings über die mailsettings im app.config.
lg
as
da fehlt evtl. die Definition der Sendemethode:
siehe MSDN
<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="network">
<network
host="localhost"
port="25"
defaultCredentials="true"
/>
</smtp>
</mailSettings>
</system.net>
</configuration>
hi,
das ist es leider auch nicht das hatte ich schon probiert 🙁
lg
as