Mail mit Datei als Anhang senden



  • Unter den verschiedenen Möglichkeiten für WindowsForm habe ich zunächst die einfachste gewählt:

    private void test1_Click(object sender, EventArgs e)
    {
         string toaddress   = "toaddress@xxxxx.xx";
         string subject     = "Mail mit Anhang";
         string body        = "Nachricht mit Anhang gesendet aus C# Programm";
         string file        = "screenshot001.png";
         string attachfile  = Path.GetFullPath(file);
    
         this.TopMost = false;       // mail-Form nach vorne
    
         System.Diagnostics.Process.Start("mailto:" + toaddress +
                                          "?subject=" + subject +
                                          "&body=" + body +
                                          "&attach=" + attachfile +
                                          "");
    }
    

    Scheint soweit brauchbar und läuft. Die Mail wird korrekt vorbereitet und kann gesendet werden. Leider wird nur der Anhang nicht automatisch eingefügt.
    Das ganze soll unabhängig vom unbekannten mail-server des Anwenders einsetzbar sein.

    Habe im Netz viel gesucht und auch MAPI32.DLL und SmtpClient probiert. Doch für .Net bisher alles ohne Erfolg.



  • Hallo,

    "mailto:" unterstützt bisher auch kein attachment, s. RFC6068: The 'mailto' URI Scheme

    Die SmtpClient-Klasse sollte aber genau das richtige sein. Einen guten Überblick darüber gibt: System.Net.Mail - Complete FAQ
    bzw. explizit mit Attachment How do I send an email with attachments?



  • http://www.vbusers.com/codecsharp/codeget.asp?ThreadID=71&PostID=1
    Funktioniert allerdings nicht mit eMail-Clients die keine MAPI-Unterstützung mitbringen, dann ist man bzgl. Anhang aber ohnehin aufgeschmissen.

    SmtpClient ist zwar recht einfach, hilft aber nicht weiter wenn die eMail über das eMail-Postfach des Nutzers rausgehen soll (sofern man sie ihn nicht nochmal im Programm irgendwo eintippen lässt)


Log in to reply