SMTP Mail-Versand

magic_halli

Erfahrenes Mitglied
Hi,

ich habe folgendes kleine Programm, welches eigentlich eine eMail versenden sollte, was es aber leider nicht tut:

Code:
class App
{
	public static void Main()
	{
		string sAbsender;
		string sAdresse;
		string sBetreff;
		string sText;
		
		System.Web.Mail.SmtpMail.SmtpServer = "smtp.mail.yahoo.de";	//smtp-Server URL
		System.Console.WriteLine("kleiner eMail-Sender");
		System.Console.Write("Absender: ");
		sAbsender = System.Console.ReadLine();
		System.Console.Write("E-Mail Adresse: ");
		sAdresse = System.Console.ReadLine();
		System.Console.Write("Betreff: ");
		sBetreff = System.Console.ReadLine();
		System.Console.Write("Text: ");
		sText = System.Console.ReadLine();
		System.Console.Write("E-Mail versenden (j/n)?");
		if(System.Console.ReadLine() == "j")
		{
			try
			{
				System.Console.WriteLine("E-Mail übertragen...");
				System.Web.Mail.SmtpMail.Send(sAbsender,sAdresse,sBetreff,sText);
				System.Console.WriteLine("E-Mail wurde übertragen.");
			}

			catch(System.Exception e)				
			{
				System.Console.WriteLine(e.Message);
			}
		}
		else
		{
			System.Console.WriteLine("E-Mail wurde nicht übertragen!");
		}
	
	}
}

Ich bekomme nach bestätigen zum senden der eMail folgende Errormessage: "Auf das Objekt CDO.Message konnte nicht zugegriffen werden".

Wieso sendet es keine eMail raus?

Danke, Rico.
 
Hi.

Bei deinerm Catch-Block, gib bitte mal die Nachricht der InnerExcetption aus.

Code:
System.Console.WriteLine(e.InnerException.Message);

Das sollte einen aussagekräftigeren Text ausgeben.

Im übrigens gibts unter http://www.systemwebmail.com eine riesige FAQ zum Mailversand unter .net.

MfG,
Alex
 
Ich hab jetzt auch mal nach diesem Beispiel von C-Sharp Corner probiert.

Leider bekomm ich auch die gleiche Meldung. Probier's mal weiter. Ich möcht wetten das jemand anderes die Lösung weiss...

Code:
using System;
using System.Web.Mail;

namespace Console_eMail
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	internal class Class1
	{
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		private static void Main(string[] args)
		{
			Console.WriteLine("Kleiner eMail-Sender\n--------------------");
			Console.Write("Absender: ");
			string sAbsender = Console.ReadLine();
			Console.Write("E-Mail Adresse: ");
			string sAdresse = Console.ReadLine();
			Console.Write("Betreff: ");
			string sBetreff = Console.ReadLine();
			Console.Write("Text: ");
			string sText = Console.ReadLine();

			Console.WriteLine( string.Format("\nAbsender:\t{0}\nE-Mail Adresse:\t{1}\nBetreff:\t{2}\nText:\t\t{3}\n",
				sAbsender, sAdresse, sBetreff, sText));

			Console.Write("E-Mail versenden (j/n)?");

			if (Console.ReadLine() == "j"){
				try{
					MailMessage Message = new MailMessage();

					Message.From = sAbsender;
					Message.To = sAdresse;
					Message.Subject = sBetreff;
					Message.Body = sText;
					Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");//basic authentication
					Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); //set your username here
					Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret");//set your password here

					Console.WriteLine("E-Mail übertragen...");
					SmtpMail.SmtpServer = "pop.gmx.net";
					SmtpMail.Send(Message);
					Console.WriteLine("E-Mail wurde übertragen.");
					Console.Read();
				}
				catch (Exception ex){
					Console.WriteLine( string.Format( "{0}\n\n{1}", ex.Message, ex.InnerException.ToString()) );
					Console.Read();
				}
			}
			else{
				Console.WriteLine("Programm wird jetzt beendet!");
				Console.Read();
			}
		}
	}
}

MfG cosmo
 
Zuletzt bearbeitet:
Cosmo, auch du gib mal die Nachricht der InnerException aus.
Diese eine Fehlermeldung bekommt man so ziemlich immer, wenn was nicht geklappt hat.
 
@ Cosmo - http://www.systemwebmail.com/faq/3.8.aspx#3.8
Code:
	MailMessage mail = new MailMessage();
	mail.To = "me@mycompany.com";
	mail.From = "you@yourcompany.com";
	mail.Subject = "this is a test email.";
	mail.Body = "Some text goes here";
	mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");	//basic authentication
	mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); //set your username here
	mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret");	//set your password here

	SmtpMail.SmtpServer = "mail.mycompany.com";  //your real server goes here
	SmtpMail.Send( mail );

@magic_halli
Magst davon auch die InnerException aufrufen, vielleicht steht noch mehr. Aber probier vielleicht auch mal die Anzumelden.
 
Also bei mir das irgendwie nicht...
Die Methode mail.Fields.Add(...) bzw. System.Web.Mail.MailMessage wird nicht unterstützt bzw. ist nicht vorhanden!?

@cosmochaosmaker:
Bei Dir funktioniert der Quellcode mit der Authentification wohl?
 
Also bei 1und1 hat's nich geklappt. Die Exception meinte es gibt den User (mich) nicht.
Glaube da muss ich noch igendwas Sicherheitsspezifisches einstellen. Das lässt sich aber noch herrausfinden denke ich.

Aber als ich es mit GMX probiert habe, hat es auf anhieb geklappt.
Hab den Quellcode oben angepasst.

MfG cosmo
 
Zurück