Red de conocimiento informático - Consumibles informáticos - (300 puntos) Buscando un código fuente de recepción en idioma Yi.

(300 puntos) Buscando un código fuente de recepción en idioma Yi.

Versión 2

Soporta la biblioteca pop3

. Montaje inicia el montaje

. Variable de ensamblaje correo, información de correo, "0"

. Archivo adjunto de variable de ensamblaje, información del archivo adjunto, " 0 "

. Índice de correo variable de ensamblaje, tipo entero

. Índice de adjunto de la variable de ensamblaje, número entero.

. Número total de mensajes de variables de ensamblaje de tipo entero.

. El número de archivos adjuntos para la variable de ensamblaje de entero

. Información de inicio de sesión de la variable de ensamblaje, tipo de texto, " 6 "

Si las variables de ensamblaje se pueden explorar rápidamente, tipo lógico.

. Tamaño de mensaje de variable ensamblada, entero, " 0 "

. Grupo de números de secuencia de correo variable de ensamblaje, tipo de texto, "0"

. subrutina _ subrutina de inicio, tipo entero, esta subrutina se ejecuta primero después de iniciar el programa.

Stdout("Prueba de la biblioteca de soporte de recepción de correo" #newline)

Stdout(, "Inicio de sesión de correo electrónico: " #newline")

Regístrese para recibir función de devolución de llamada)

SetProxy()

Land()

QuickView()

Stdout() "Vista rápida completada" # newline)

stdout(, "¿Necesita ver cada mensaje en detalle? (sí/no)")

if true (code(. stdin(), 1) = 121)

readmail()

si realmente terminó

stdin()

Return (0)' puede devolver cualquier valor si deseada

La subrutina establece la variable local, tipo de texto

Tipo de servidor de variable local, tipo de texto

Dirección del servidor de variable local,tipo de texto. >

Puerto del servidor de variables locales, tipo de texto

, tipo de texto

Contraseña del servidor de variables locales, tipo de texto

Salida estándar ("Do. desea configurar un servidor proxy (S/N)" #salto de línea)

Set = stdin()

. if true(getcode(si está configurado, 1) = 121)

stdout(, "1: proxy http 1.1," 2: calcetines 5 proxy-")

Tipo de servidor = stdin()

stdout(, "dirección IP del servidor proxy-")

Dirección del servidor =StandardInput()

StandardOutput(,"Número de puerto-")

Puerto del servidor=StandardInput()

Salida estándar(,"Nombre de usuario -")

Usuario del servidor=entrada estándar()

Salida estándar(, "contraseña-")

Contraseña del servidor=entrada estándar()

Si (establecer servidor proxy (establecer en número entero (tipo de servidor), dirección del servidor, valor (puerto del servidor), usuario del servidor, contraseña del servidor) = verdadero)

Stdout ("Establecer el servidor proxy correctamente" #newline)

En caso contrario.

Salida estándar ("No se puede configurar el servidor proxy")

Entrada estándar ()

end()

Si se acabó

Si realmente se acabó.

Inicio de sesión de subrutina

Variable de texto variable local, tipo de texto

Salida estándar ("Ingrese la dirección del servidor de correo:")

Variable de texto = entrada estándar (Verdadero) )

Información de inicio de sesión[1] = variable de texto

Salida estándar (, "Ingrese el número de puerto:")

Variable de texto = entrada estándar (verdadero )

Información de inicio de sesión[2] = variable de texto

Salida estándar ("Ingrese el nombre de usuario:")

Variable de texto = entrada estándar (verdadero)

p>

Información de inicio de sesión[3] = variable de texto

Salida estándar (, "Ingrese su contraseña:")

Variable de texto = entrada estándar (verdadero)

Información de inicio de sesión[4] = variable de texto

Stdout(, "Ingrese el tiempo de espera (milisegundos):")

Variable de texto = stdin(true)

p>

Información de inicio de sesión[5] = variable de texto

Salida estándar ("Ingrese el número de reintentos:")

Variable de texto = entrada estándar (verdadero)

Información de inicio de sesión[6] = variable de texto

Salida estándar (, #newline)

Conectar al servidor de correo ()

Conexión de subrutina al servidor de correo.

Salida estándar(, "Espere... mientras inicia sesión en el servidor de correo")

Salida estándar(, # nueva línea # nueva línea)

. si es verdadero (conectar para recibir el servidor (información de inicio de sesión [1]), valor (información de inicio de sesión [2]), valor (información de inicio de sesión [2]), valor (información de inicio de sesión [4]), valor (información de inicio de sesión [5]),to value(información de inicio de sesión[2]) mensaje[6]) = false)

Stdout(, "Ocurrió un error: " Obtener mensaje de error de correo electrónico())

StandardIn()

End()

Si realmente está terminado

Stdout("Conexión de buzón exitosa")

Leer correo ()

. Leer subrutina de correo

. Devolución lógica de variable local

. Correo total de variable local

. Escriba.

Número de secuencia de correo electrónico de variable local

Variable local con grado

Retorno lógico = Obtener mensaje de correo electrónico.

si es verdadero (retorno lógico = falso)

stdout(, "Se produjo un error al recuperar la información del correo electrónico:" al recuperar la información del correo electrónico Error())

Entrada estándar()

End()

Si realmente termina

Salida estándar(," Número total de mensajes: " texto(Número total de mensajes. ) #newline)

Stdout(, "Número de mensajes:" text(número total de mensajes) #newline)

Redefinir matriz (correo, correos electrónicos falsos, correos electrónicos totales)

Borrar matriz (tamaño del mensaje)

Retorno lógico = obtener tamaño del mensaje (-1, tamaño del mensaje, número total de mensajes)

si es verdadero (retorno lógico = falso) )

stdout(, "Se produjo un error al obtener el tamaño de cada correo electrónico:" mensaje de error())

stdn()

p>

End( )

Si realmente está terminado

Stdout("¿Quieres echar un vistazo rápido a (Y/N)")

Browse=entrada estándar (verdadero)

Salida estándar (, #newline)

Salida estándar (, "Espere... para recibir el correo")

If(code( navegar, 1) = 121)

Si navegación rápida = verdadero.

.

Encabezado del ciclo de conteo (número total de mensajes, variable de conteo)

correo[variable de conteo] = las primeras líneas del correo recibido (variable de conteo, 10)

. Count Period Tail()

De lo contrario.

. Encabezado del ciclo de conteo (número total de mensajes, variable de conteo)

Correo [variable de conteo] = recibir correo (variable de conteo)

. Fin del periodo de conteo ()

Si finaliza

Salida estándar (, #newline)

Salida estándar (, #newline)

Borrar matriz (grupo de números de secuencia de correo)

. Encabezado del ciclo de conteo (número total de mensajes, variable de conteo)

Número de serie del correo electrónico recibido (variable de conteo, número de serie del correo electrónico)

Unirse a miembros (grupo de números de serie del correo, número de serie del correo electrónico)

. Count Cycle Tail()

Salida estándar ("Correo recibido")

Desconectar el servidor receptor()

Si es verdadero (si se debe navegar rápidamente = Falso)

Mensaje de correo ()

Si realmente se acabó.

. Mensaje de correo de subrutina

. Número de serie de correo variable local, tipo entero

Salida estándar (, * * * *Texto de correo recibido" (número total de correos) "Número de piezas" #salto de línea)

Estándar salida (" Ingrese el número de secuencia secundaria del mensaje para ver el contenido del mensaje: "")

Número de secuencia auxiliar de correo = valor de terminación (entrada estándar (verdadero))

. Si (número de serie del correo ≥ 1 y número de serie del correo ≤ número total de correos)

Obtener el correo (número de subserie del correo)

En caso contrario.

Mensaje de correo()

Si finalizó

. Subrutina para obtener información del archivo adjunto

. El número de índice del parámetro adjunto, tipo entero

Si la variable local está incrustada y es lógica.

. Nombre de archivo de variable local, tipo de texto

. Número de archivo de variable local, tipo entero.

Salida estándar (, #salto de línea)

Salida estándar ("número") texto (número de índice del archivo adjunto) "Información del archivo adjunto" #salto de línea)

Salida estándar(,"Para incrustar o no incrustar:")

Incrustar = Adjunto [Número de índice del archivo adjunto]. Si está seleccionado Insertar archivo adjunto().

Stdout (, a texto (incrustado o no))

Stdout (, #newline)

. Si (si incrustar = verdadero)

Salida estándar (, "Nombre de archivo incrustado:")

Salida estándar (, archivo adjunto [número de índice del archivo adjunto]. Nombre ())p>

En caso contrario.

Stdout(, "Nombre del archivo adjunto:")

Stdout(, Adjunto [número de índice del archivo adjunto]. Tomar nombre del archivo ())

Si finaliza

Stdout(, #newline)

Stdout(, "Tamaño del archivo adjunto:")

Stdout(, a texto(adjunto [número de índice del archivo adjunto]). Tamaño ()))

Salida estándar (, #newline)

Salida estándar (, "Tipo de archivo adjunto:")

Salida estándar (, archivo adjunto [índice de archivo adjunto] número]. Tome tipo())

Salida estándar (, #newline)

Salida estándar (, "Método de codificación:")

Salida estándar (, archivo adjunto [número de índice del archivo adjunto]. Obtener método de codificación ())

Salida estándar (, #salto de línea)

Salida estándar (, "El tamaño de los datos del archivo adjunto: ")

Salida estándar (, a texto (obtenga la longitud del conjunto de bytes (adjunto [número de índice del archivo adjunto]). Obtenga datos ()))

Salida estándar (, #nueva línea)

. Subrutina para recibir correo

Número de índice de correo de parámetros, tipo entero

. Contenido de variable local, tipo de texto

.

Variable local con grado, tipo entero.

Stdout(, "Número" texto(número de índice de correo) "Mensaje de correo" #newline)

Stdout(, "Nombre del remitente:")

Salida estándar (, correo[índice de correo]. Obtener el nombre del remitente ())

Salida estándar (, #newline)

Salida estándar (, "Asunto: ")

Salida estándar (, correo[número de índice de correo]. Con título ())

Salida estándar (, #nueva línea)

Salida estándar (, "Fecha:")

Salida estándar (, a texto (correo [número de índice de correo]). Fecha de disparo ()))

Salida estándar (, #nueva línea)

Salida estándar ( , "Dirección del remitente:")

Salida estándar (, correo[número de índice del correo]. Obtener dirección del remitente ())

Salida estándar (, #nueva línea)

Salida estándar (, "dirección de remitente:")

Salida estándar (, correo[número de índice de correo]. Obtener dirección de respuesta ())

Salida estándar(, #nueva línea)

Estándar(, "Tamaño del mensaje:")

Estándar(, a texto(Tamaño del mensaje[Número de índices de mensajes])

Salida estándar ( , #newline)

Salida estándar (, "Número de serie de correo:")

Salida estándar (, Grupo de números de serie de correo [Número de índice de correo])

Salida estándar (, #avance de línea)

Salida estándar ("Longitud del mensaje original: ")

Salida estándar (, convertida a texto (tome Longitud del texto (correo[número de índice de correo] ). Obtener los datos originales ()))

Salida estándar (, #newline)

Salida estándar (, "Contenido de texto: ")

contenido =). mail[número de índice de correo]. Obtener contenido de texto()

Stdout(, content#newline)

Stdout("Guardar archivo de hipertexto")

Contenido de hipertexto. (número de índices de correo)

Salida estándar (, #nueva línea)

Salida estándar (, "Número de archivos adjuntos: ")

Número de archivos adjuntos = número de correos electrónicos [índice de correo]. Obtenga el número de archivos adjuntos ()

Salida estándar (, a texto (número de archivos adjuntos))

Salida estándar (, #nueva línea)

Si es verdadero (si navegación rápida = falso)

Salida estándar (, #nueva línea)

Adjunto = correo electrónico [número de índice de correo] Obtener archivo adjunto ()

Contar el encabezado del bucle (obtener el número de miembros de la matriz (adjunto), contar la variable)

Obtener información del archivo adjunto (contar la variable)

Contar la cola del ciclo()<. /p>

Seleccione guardar archivos adjuntos (número de índices de correo)

Salida estándar (, #nueva línea)

Información de correo()

Si es realmente terminado.

. La subrutina selecciona el archivo adjunto para guardar.

El parámetro selecciona el índice del archivo adjunto, tipo entero

. Número de serie del adjunto de la variable local, tipo entero.

Stdout("¿Necesito guardar el archivo adjunto (sí/no)")

If(code(stdin(), 1) = 121)

Salida estándar ("Ingrese el número de serie del archivo adjunto que desea guardar: "")

Número de serie secundario del archivo adjunto = valor terminal (entrada estándar (verdadero))

. Si Verdadero (el número de serie del archivo adjunto ≥ 1 y el número de serie del archivo adjunto ≤ el número de archivos adjuntos)

Guarde el archivo adjunto (el número de serie secundario del archivo adjunto)

Si realmente terminó <. /p>

En caso contrario

Eliminar subrutina (seleccionar índice de archivos adjuntos)

Si finaliza

La subrutina elimina la subrutina

. /p>

. Si se eliminan variables locales, tipo de texto.

Stdout("¿Quieres eliminar este mensaje (S/N)")

Delete = stdin(true)

. Si es verdadero (obtener código (eliminar o no, 1) = 121)

Conéctese al servidor receptor (información de inicio de sesión [1], al valor (información de inicio de sesión [2]), información de inicio de sesión [3], mensaje de inicio de sesión[4], valor(información de inicio de sesión[5]), valor(información de inicio de sesión[6])

If(eliminar mensaje(índice) = verdadero)

Estándar . salida("Eliminación exitosa")

De lo contrario

Salida estándar("Eliminación fallida")

Si finalizó

Si es verdadero. El final.

MailReset()

. Un recorrido rápido por las subrutinas.

Variables locales con grados p>. miembros de la matriz (correo), variable de conteo)

Obtener correo (variable de conteo)

Eliminar subrutina (variable de conteo)

Salida estándar (,#nueva línea)

. Cola del ciclo de recuento()

. La subrutina guarda el índice.

Tipo entero.

. Número de archivo de variable local, tipo entero. Si (adjunto [guardar índice]. Si se debe incrustar el archivo adjunto ( )= verdadero)

Filename=Adjunto[Guardar índice]. ()

De lo contrario,

Nombre de archivo=Adjunto[Guardar nombre de archivo ()

Si finaliza

Salida estándar (" Ingrese la ruta para guardar, que termina con " #quote"\" #quote": "))

FileNumber=OpenFile(Stdin(True)FileName,#Rewrite,)

If (Insertar ByteSet(Número de archivo, Archivo adjunto[SaveIndex]). recuperar datos () ) = verdadero)

Stdout("guardar correctamente")

De lo contrario.

Salida estándar ("Error al guardar")

Si finaliza

Cerrar archivo (número de archivo)

Salida estándar (, # nueva línea )

. Restablecimiento de correo de subrutina

Salida estándar (, #newline)

Salida estándar (, "¿Necesita recuperar correos electrónicos eliminados? (Sí/No)")

. si es verdadero(código(stdin(),) = 121)

. If (reset mail () = true)

Stdout("Restablecimiento exitoso")

Stdout("El correo eliminado se ha recuperado")

Else .

Salida estándar ("Error de reinicio")

Si se acabó

Si realmente se acabó.

. Contenido de hipertexto de subrutina

Índice de parámetros, tipo entero

. Variable local con grado, tipo entero.

. Número de archivo de variable local, tipo entero.

. Archivo temporal de variable local, tipo texto.

Salida estándar ("Ingrese la ruta al archivo de hipertexto de navegación temporal, que termina en "#quote"\" #quote":")

Archivo temporal = entrada estándar()

Número de archivo = abrir archivo (archivo temporal "navegación temporal.html", #rewrite,)" crea un archivo de página web que contiene contenido de hipertexto para navegar.

Insertar texto (número de documento , correo electrónico [índice]). Obtener contenido de hipertexto ())

Cerrar archivo (número de documento)

Encabezado del ciclo de inventario (correo electrónico [índice]). ), contar variable)

Si es verdadero (adjuntos [contar variable].

Ya sea para incrustar archivos adjuntos ()

Número de archivo = archivo abierto (archivo adjunto temporal [variable de recuento]). Tome nombre(), #rewrite,)' para crear un archivo adjunto de la página web de hipertexto que se va a explorar.

Insertar conjunto de bytes (número de archivo, archivo adjunto [variable de recuento]). Obtener datos ())

Cerrar archivo (número de archivo)

Si realmente terminó.

. Contar cola del ciclo()

. Función de devolución de llamada de subrutina, tipo lógico

. Tipo de parámetro, tipo entero

Número de parámetro, tipo entero

. Número de bytes del parámetro, tipo entero

Inicio de juicio (#Tipo de comando. Verificar nombre de usuario = tipo)

Salida estándar ("Verificar información del usuario")

. Predeterminado

La prueba finaliza

Devolución (verdadero)