2012-04-10 7 views
2

Ich muss öffnen Sie eine neue E-Mail mit einem Anhang über die Standard-Mail-Manager (ohne SMTP-Code) Öffnen Sie die Standard-Mail-Manager enthält Ich benutze:eine angehängte Datei (Windows)

System.Diagnostics.Process.Start(String.Format("mailto:{0}", txtEmail.Text)) 

Ist es möglich, einen Anhang hinzufügen?


konnte ich dieses

versuchen http://www.codeproject.com/Articles/17561/Programmatically-adding-attachments-to-emails-in-C

aber ich sollte verstehen, dass es immer ein Microsoft Outlook müssen dem Client-Computer ist ...

+2

Mögliches Duplikat http://StackOverflow.com/q/1195111/799586 –

+1

Das ist nicht wirklich _send_ E-Mail, es startet den Standard-E-Mail-Client der Maschine mit vorgefüllten Feldern. –

+0

@Mr. Enttäuschung: OK, wenn Sie möchten, möchte ich den Standard-E-Mail-Client mit einem generierten Bild auf der Festplatte als Anhang öffnen ... – serhio

Antwort

0

Es ist unmöglich!
ive bot eine detaillierte Möglichkeit, dies mit dem Namespace System.Net.Mail zu tun;

private void button1_Click(object sender, EventArgs e) 
{ 
    SmtpClient smtpserver = new SmtpClient(); 
    smtpserver.Credentials = new NetworkCredential("[email protected]", "passphrase"); 
    smtpserver.Port = 587; 
    smtpserver.Host = "smtp.live.com"; 
    smtpserver.EnableSsl = true; 

    MailMessage mail = new MailMessage(); 
    mail.From = new MailAddress("[email protected]"); 
    mail.To.Add("[email protected]"); 
    mail.Subject = "testing"; 

    string pathTOAttachment; 
    string _Attachment = pathToAttachment; 
    Attachment oAttch = new Attachment(_Attachment); 
    mail.Attachments.Add(oAttch); 

    mail.Body = "message body"; 

    ThreadPool.QueueUserWorkItem(delegate 
    { 
     try 
     { 
      smtpserver.Send(mail); 
     } 
     //you can get more specific in here 
     catch 
     { 
      MessageBox.Show("failure sending message"); 
     } 
    }); 
} 

Noteworthy (nicht berücksichtigt in diesem Codebeispiel genommen):

  1. einige isp kann Größenbeschränkung auf Befestigung verhängen, einige stellen Sie sicher, es zu überprüfen, bevor Sie die E-Mail zu senden.
  2. SMTP-Hosts/Port kann variieren, ist der effizienteste Weg, gegen eine regelmäßig aktualisierte Datenbank zu überprüfen, oder lassen Sie den Benutzer selbst einstellen.
  3. Der Threading-Teil dreht sich alles um UI-Reaktionsfähigkeit, aber wenn der Benutzer das Haupt-App-Fenster mit der noch sendenden E-Mail schließt, wird es Vorrang haben.
+0

habe ich gesagt, dass es unmöglich ist :-), meine Ignoranz, versuchen Sie dies: http://www.vbusers.com/codecsharp/codeget.asp?ThreadID=71&PostID=1 – sarepta

Verwandte Themen