Hola a todos,
ya arregle el problema de que la consola se cierra.
Pero ahora tengo el problema de que no puedo enviar E-Mails.
El código del cliente es este mas o menos:
Queria habilitar un seguimiento para poder obtener eventos y tengo este codigo de parte del servidor:
Pero Visual Studio me dice lo siguiente:
No entiendo. No se porque se habla de "Task" ahora.
Alguien me puede ayudar?
Gracias y saludos
ya arregle el problema de que la consola se cierra.
Pero ahora tengo el problema de que no puedo enviar E-Mails.
El código del cliente es este mas o menos:
Código [Seleccionar]
SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "localhost";
smtpClient.Port = 587;
smtpClient.Send(new MailMessage("app@AIKI.CO.ir", "qermezkon@gmail.com")
{
Subject = "Test",
Body = "test"
});
Queria habilitar un seguimiento para poder obtener eventos y tengo este codigo de parte del servidor:
Código [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using SmtpServer;
using SmtpServer.Tracing;
namespace E_Mail_Server
{
class Program
{
static CancellationTokenSource _cancellationTokenSource;
static void Main(string[] args)
{
StartAsync().Wait();
}
public static async Task StartAsync()
{
_cancellationTokenSource = new CancellationTokenSource();
var options = new SmtpServerOptionsBuilder()
.ServerName("localhost")
.Port(25, 587)
.Build();
var server = new SmtpServer.SmtpServer(options);
server.SessionCreated += OnSessionCreated;
server.SessionCompleted += OnSessionCompleted;
var serverTask = server.StartAsync(_cancellationTokenSource.Token);
serverTask.WaitWithoutException();
}
static void OnSessionCreated(object sender, SessionEventArgs e)
{
Console.WriteLine("SessionCreated: {0}", e.Context.RemoteEndPoint);
e.Context.CommandExecuting += OnCommandExecuting;
}
static void OnSessionCompleted(object sender, SessionEventArgs e)
{
Console.WriteLine("SessionCompleted: {0}", e.Context.RemoteEndPoint);
e.Context.CommandExecuting -= OnCommandExecuting;
_cancellationTokenSource.Cancel();
}
}
}
Pero Visual Studio me dice lo siguiente:
Citar
"Task" no contiene una definición para "WaitWithoutException", y no se pudo encontrar ningún método WaitWithoutException que acepte un primer argumento de tipo "Task" (puede que falte una directiva using o una referencia de ensamblaje).
No entiendo. No se porque se habla de "Task" ahora.
Alguien me puede ayudar?
Gracias y saludos