Hallo
Folgende Ausgangssituation:
1) Einlesen einer Textdatei mit E-Mail Adressen
2) E-Mail Adressen sind durch , von einander getrennt
3) Versenden von Daten an diese E-Mail Adressen
Mein Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| public static string[] filter_emails (string email) { string[] sub = new string[500]; if (email.IndexOf(',') <= 0) return sub; else { sub = email.Split(','); for (int i=0; i < sub.Length; i++) { sub[i] = sub[i] + "\r\n"; sub[i] = sub[i].Trim(); } } return sub; }
void Button1Click(object sender, EventArgs e) { string[] sa = new string[500]; sa = filter_emails(mail);
if (sa[0] == null) { } else { int length = count_elements(sa); for (int i=0; i < length; i++) { send_email (sa[i]); } } |
Die send_email Funktion funktioniert einwandfrei, wenn ich z.b solch eine e-mail übergebe "test@hotmail.com". Nun aber, wenn ich das Programm so laufen lasse, bekomme ich folgenden Fehler:
Zitat: |
System.FormatException: Die angegebene Zeichenfolge besitzt nicht das für eine E-Mail-Adresse erforderliche Format.
bei pdfinside.MainForm.write_email(String mailto) in c:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\pdfinside\MainForm.cs:Zeile 174.
bei pdfinside.MainForm.Button1Click(Object sender, EventArgs e) in c:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\pdfinside\MainForm.cs:Zeile 297.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei pdfinside.Program.Main(String[] args) in c:\Dokumente und Einstellungen\lipo\Eigene Dateien\SharpDevelop Projects\pdfinside\Program.cs:Zeile 28.
|
Nun dachte ich mir, okay wahrscheinlich gibts bei dem getrimmten string ein zeichen, welches den string als "invalid email" darstellt. Habe kurz folgenden Code geschrieben:
[cs]
for (int k = 0; k<sa[0].Length; k++)
{
MessageBox.Show(sa[0][k].ToString());
}
[cs]
Die Ausgabe ist folgende:
Zitat: |
t
e
s
t
@
t
e
s
t
.
d
e
|
Sieht alles eigentlich gut aus. (Keine leerzeichen, keine Umbrüche...)
Hoffe jemand kann mir hier weiterhelfen.
Danke!
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt