2011-01-03 11 views
2

Ich habe eine großartige Möglichkeit gefunden, E-Mails in C# zu senden, bis auf ein Problem, ich muss mein Passwort anzeigen. Wenn irgendjemand mein Programm zerlegen würde oder wenn ich mich dazu entschließen würde, Open Source zu machen (was ich wahrscheinlich tun werde), würden sie den Benutzernamen und das Passwort für mein Google Mail-Konto erhalten. Gibt es eine Möglichkeit, dies zu umgehen?Wie sende ich E-Mails von C#, ohne mein Passwort zu verraten?

MailMessage mail = new MailMessage(); 
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 

mail.From = new MailAddress("[email protected]"); 
mail.To.Add("[email protected]"); 
mail.Subject = "Pandora Free-D Message"; 
mail.Body = "Name: " + C.NameBox.Text + "\n" + "Email: " + C.emailBox.Text + "\n" + C.Message.Text; 

SmtpServer.Port = 587; 
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password"); 
SmtpServer.EnableSsl = true; 

SmtpServer.Send(mail); 

+++++ EDIT +++++

hmmm ... würde localhost arbeiten? Weiß jemand?

+0

Erstellen Sie jetzt Dummy-Anmeldeinformationen, und bitten Sie die Benutzer Ihrer Open-Source-Software, diese Dummy-ID oder ihre eigenen Domänen-IDs und Anmeldeinformationen zu ersetzen. –

Antwort

9

Nicht, wenn Ihr Mail-Server eine Authentifizierung erfordert. Das Programm muss das Passwort zum Senden von E-Mails kennen. Wenn dieses Programm auf einem Computer ausgeführt wird, dem Sie nicht vertrauen, können Sie davon ausgehen, dass das Kennwort schnell kompromittiert wird.

Sie sollten eine alternative Methode in Betracht ziehen, z. B. Senden der E-Mail über einen Webdienst oder HTTP-Aufruf an einen Server unter Ihrer Kontrolle, wo Sie die Nachricht überprüfen und dann an den Mailserver senden können.

+0

+1, um deutlich anzuzeigen, dass das Kennwort schnell kompromittiert wird, wenn es auf einem nicht vertrauenswürdigen Computer ausgeführt wird. –

+0

Genau warum ich gefragt habe. Ich wollte nur wissen, ob es irgendwelche anderen Methoden gibt, da ich noch keine Art von E-Mail-Server oder eine Webseite dafür habe ... Hoffentlich werde ich in der Zukunft, aber im Moment, denke ich, werde ich das hier verlassen Feature deaktiviert. – Sean

1

Sie könnten Web-Service erstellen, der E-Mail an Mail-Server sendet.

1

Warum haben Sie andere, die Ihr Konto zum Senden von E-Mails verwenden? Lassen Sie den Benutzer seinen eigenen Mailserver und Authentifizierung verwenden. Lassen Sie den Benutzer diese Werte eingeben, wenn Sie Ihr Programm installieren und in einer Konfigurationsdatei speichern.