Enviar emails dsede un script

ScriptFTP ha sido diseñado para el funcionamiento sin su atención y por lo tanto Ud sabrá lo que ha sucedido durante la ejecución de una secuencia de comandos , con solo hechar un vistazo a la secuencia de comandos de la ventana ScriptFTP . Además , puede ejecutar log a los mensages de un script's de salida a un archivo de texto, e incluso le ha de enviar correos electrónicos a Ud que contiene información sobre la secuencia. Esta sección está dedicada a este tema.

En ScriptFTP no hay un comando integrado para enviar correos electrónicos porque no es necesario. Vamos a utilizar el EXEC comando para llamar a un externo de linea de comandos de un programa que va a enviar el correo electrónico. Los siguientes ejemplos utilizan Blat, una libre y temendamente útil linea de comandos de programaa de correo, para todo tipo de trabajos por lotes. Sin embargo, Ud puede utilizar cualquier tipo de programa de correo electrónico con solo ajustar el EXEC call.

El siguiente script de ejemplo , se enviará un correo electrónico, si no se puede conectar al servidor FTP, o si la sincronización de archivos falla. Tenga en cuenta que se configura por primera vez la forma en que como Blat es invocado.Construimos dos mensajes diferentes para llamar a Blat. Uno para cada tipo de error, ya que el usuario debe conatr desde el correo electrónico, lo que pasó exactamente , y no debe confundirse , con un mensaje de error genérico .

# FTP configuración del servidor
$ftp_server="ftp.myserver.com"
$ftp_usuario="mi usuario"
$ftp_contraseña="mi contraseña"
 
# conjunto de directorios en el cript
# Se sincronizará.
$directorio a distancia para sincronizar="/directorio remoto/"
$directorio local para sincronizar="C:\MyDir"
 
 
# Blat parametros. Este es el programa de linea de comandos
# utilizado en este ejemplo, para enviar mensajes de correo desde dentro de ScriptFTP

$blat_ruta="C:\blat\blat.exe"

$smtp_servidor="smtp.myserver.com"
$smtp_usuario="myuser_at_myserver.com"
$smtp_contraseña="mypassword"

$email_from="scriptftp@myserver.com"
$email_a="me@myserver"
$email_subject="ScriptFTP mensaje de error"
$email_cuerpo1="No se pudo conectar al servidor FTP "
$email_cuerpo2="No se pudo sincronizar archivos"
 
 
# Construcción de la ruta de archivo de registro ,mediante la recuperación de la ruta de Windows' temp
# El entorno del sistema variable TEMP y la adicción de la corriente
# fecha de el número de archivo "archivo de registro-". Por ejemplo:
# C:\windows\temp\logfile-20070424.txt
$ruta de acceso de archivo=GETENV("TEMP")."\logfile-".GETDATE(FORMAT3).".txt"
 
# Iniciar el registro de salida del Script
LOGTO($log_file_path)


# El comando Blat para enviar un correo electrónico que se supone
# algo parecido a esto,( sin los saltos de linea ):
#
# C:\blat\blat.exe
# -server smtp.myserver.com
# -u myuser_at_myserver.com
# -pw mypassword
# -f scriptftp@myserver.com
# -to me@myserver
# -subject "ScriptFTP error message"
# -body "Error messsage here"
# -ps "C:\Users\Carlos\AppData\Local\Temp\logfile-20070427.txt"
#
# Ya que hay dos tipos diferentes de mensajes de correo elactrónico según
# en el error que pudo haber sucedido, que necesitamos para construir
# dos diferentes comandos Blat
#
# partes que ambos tienen de comun que incluye las variables
# $common_part_1, $common_part_2 and $common_part_3.
# la cuarta parte contiene los diversos cuerpos y
# se les llama $cmd_line_part_4_1 and $cmd_line_part_4_2
#
$common_part_1=$blat_path." -server ".$smtp_server." -u ".$smtp_user." -pw "
$common_part_2=$smtp_password." -f ".$email_from." -to ".$email_to." -subject ".'"'
$common_part_3=$email_subject.'"'

$cmd_line_part_4_1=" -body ".'"'.$email_body1.'"'." -ps ".'"'.$log_file_path.'"'
$cmd_line_part_4_2=" -body ".'"'.$email_body2.'"'." -ps ".'"'.$log_file_path.'"'
 
# concatenar la cadena de texto completa para crear los comandos
$blat_cmd_line_1=$common_part_1.$common_part_2.$common_part_3.$cmd_line_part_4_1
$blat_cmd_line_2=$common_part_1.$common_part_2.$common_part_3.$cmd_line_part_4_2




# Conectar al servidor FTP
$result=OPENHOST($ftp_server,$ftp_user,$ftp_password)
IF($result!="OK")
      PRINT("Cannot connect to FTP server. Sending an email and aborting in 5 seconds.")
      EXEC($blat_cmd_line_1)
      SLEEP(5)
      EXIT(1)
END IF

# sincroniza los archivos
$result=SYNC($remote_dir_to_synchronize,$remote_dir_to_synchronize,UPLOAD)
IF($result!="OK")
      PRINT("Cannot syncronize. Sending an email and aborting in 5 seconds.")
      EXEC($blat_cmd_line_2)
      SLEEP(5)
      EXIT(2)
END IF
CLOSEHOST


EXIT(0)