
No puedo enviar e-mail
Publicado por Meta (20 intervenciones) el 22/01/2023 08:24:50
Hola:
No puedo enviar e-mail desde este código en consola C# desde un hotmail. Me muestra error.
Quiero saber el motivo.
Saludos.
Código C#:
No puedo enviar e-mail desde este código en consola C# desde un hotmail. Me muestra error.
Quiero saber el motivo.
Saludos.
Código C#:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
using System;
using System.IO;
using System.Net;
using System.Net.Mail;
using System.Text;
namespace Enviar_email_Consola_08
{
internal class Program
{
static void Main(string[] args)
{
// Variables.
string usuario, contraseña, destinatario, asunto, mensaje;
const int MAXIMA_LONGITUD = 40000;
#region Configuración ventana.
// Título de la ventana y versión del .Net usando.
Console.Title = "Gestor correo electrónico Hotmail. "
+ typeof(string).Assembly.ImageRuntimeVersion;
// Tamaño de la ventana, x, y, o ancho y alto.
const byte ANCHO_X = 70, ALTO_Y = 25;
Console.SetWindowSize(ANCHO_X, ALTO_Y);
// Color de fondo.
Console.BackgroundColor = ConsoleColor.Black;
// Color de las letras.
Console.ForegroundColor = ConsoleColor.Gray;
// Limpiar pantalla y dejarlo todo en color de fondo.
Console.Clear();
// Visible el cursor.
Console.CursorVisible = true;
#endregion
// Título del programa.
Console.WriteLine("\t\t----------------------------------------");
Console.WriteLine("\t\t\tEnviar Correo Electrónico");
Console.WriteLine("\t\t----------------------------------------");
try
{
Console.WriteLine("\n");
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("\t\tTu correo electrónico: ");
Console.ForegroundColor = ConsoleColor.Gray;
usuario = Console.ReadLine();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("\t\tIntroducir contraseña: ");
Console.ForegroundColor = ConsoleColor.Gray;
contraseña = LeerPassword();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("\t\tDestinatario: ");
Console.ForegroundColor = ConsoleColor.Gray;
destinatario = Console.ReadLine();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("\t\tAsunto: ");
Console.ForegroundColor = ConsoleColor.Gray;
asunto = Console.ReadLine();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("\t\tMensaje: ");
Console.ForegroundColor = ConsoleColor.Gray;
//mensaje = Console.ReadLine();
#region Enviar más de 255 caracteres.
// #########################################################################
Stream entradaDeDatos = Console.OpenStandardInput();
byte[] buffer = new byte[MAXIMA_LONGITUD];
int numerosBytesLeidos = entradaDeDatos.Read(buffer, 0, MAXIMA_LONGITUD);
char[] chars = Console.InputEncoding.GetChars(buffer, 0, numerosBytesLeidos);
mensaje = new string(chars);
// #########################################################################
#endregion
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console.Write("\t\tCantidad de texto introducido: ");
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine(mensaje.Length);
MailMessage correo = new MailMessage(usuario, destinatario, asunto, mensaje)
{
// Enviar textos con tildes.
BodyEncoding = Encoding.UTF8
};
SmtpClient servidor = new SmtpClient("smtp.live.com")
{
Port = 25 // 25 ó 465.
};
NetworkCredential credenciales = new NetworkCredential(usuario, contraseña);
servidor.Credentials = credenciales;
servidor.EnableSsl = true;
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\t\tEnviando correo...");
servidor.Send(correo);
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("\t\t¡Correo enviado satisfactoriamente!");
correo.Dispose();
Console.CursorVisible = false;
Console.ReadKey();
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("ERROR: \n");
Console.WriteLine("\t\t" + ex.Message);
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\t\tNo se ha enviado el correo.");
Console.ReadKey();
}
}
// A la hora de introducir la contraseña, se sustituye por asterístos (*) en pantalla.
public static string LeerPassword()
{
ConsoleKeyInfo cki;
StringBuilder sb = new StringBuilder();
int contador = 0;
do
{
cki = Console.ReadKey(true);
if (cki.Key != ConsoleKey.Enter)
{
sb.Append(cki.KeyChar);
if (contador < 1)
{
Console.Write("*");
}
contador++;
}
else
{
break;
}
} while (true);
Console.WriteLine();
return sb.ToString();
}
}
}
Valora esta pregunta


0