Power Builder - Enviar email

 
Vista:
sin imagen de perfil

Enviar email

Publicado por Beto (71 intervenciones) el 28/01/2014 16:33:16
Estimados, necesito crear una ventana que envie emails masivos, he bajado EmailSMTP del siguiente enlace www.topwizprogramming.com/freecode_emailsmtp.html hice unas pruebas pero no logro el envio de email, quizas me falta configurar algo, alguien en el grupo utiliza esta PBL o tiene algun ejemplo o codigo para el envio de email desde PowerBuilder que pueda compartir por favor.

[email protected]

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 6
Ha disminuido 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

Enviar email

Publicado por Kevin (8 intervenciones) el 28/01/2014 20:50:07
Hace unas semanas probé ese código de esa web que pones y me funcionó a la perfección (bajo Win XP y PB 10.5).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email

Publicado por Leopoldo Taylhardat (710 intervenciones) el 29/01/2014 02:37:08
Saludos...
Debes configurar la cuenta en el outlook o manejador de correo (y ponerla por defecto) para que maneje la salida desde allí.
---------------------------------------------------------
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
// Definir estas variables de instancia (ventana)...
mailSession mSes
mailReturnCode mRet
mailMessage mMsg
string file_name // variable de instancia (ventana) que contiene el nombre del archivo (adjunto) que quieras enviar...
 
// Objetos de la ventana...
// dw_para --> dw para seleccionar a quien enviar...
//		columna "si_no" con 1 indica enviar, con 0 indica no enviar.
// 		columna "e_mail" correo del destinatario.
//		columna "nombre" nombre de la persona destino.
//
// mle_text.Text --> caja (multilinea) con texto a enviar...
// 
------------------------------------------------------------
// Script para enviar (puede ser un botón...
long ll_row, ll_rows
string mensaje
int contador, persona
string file_persona
IF mle_text.Text = "" AND file_name=""  then
	MessageBox("Error!", "No hay nada que enviar!")
ELSE
	// Crear sesion de correo
	mSes = create mailSession
	// Logear sesion
	mRet = mSes.mailLogon(mailNewSession!)
	IF mRet <> mailReturnSuccess! THEN
	MessageBox("Correo", 'Logon fallido.')
	RETURN
	END IF
	ll_row=1
	ll_rows=dw_para.RowCount()
	DO until ll_row > ll_rows
		IF	dw_para.GetItemString(ll_row,"si_no")="1" THEN EXIT
			ll_row++
	LOOP
	IF	ll_row > ll_rows THEN
		MessageBox("Error!", "No hay destinatarios seleccionados")
	ELSE
		ll_row=1
		DO WHILE ll_row <= ll_rows
// Seleccion a enviar
			IF	dw_para.GetItemString(ll_row,"si_no")="1" THEN
				mMsg.recipient[1].name = dw_para.GetItemString(ll_row,"e_mail")
				mMsg.Subject = "Atencion: "+ dw_para.GetItemString(ll_row,"nombre")
				mMsg.NoteText = mle_text.text
// Archivo anexo.
				IF file_name<>"" THEN
					mMsg.attachmentfile[1].filename = file_name
					mMsg.attachmentfile[1].pathname = file_name
				END IF
// Enviar correo.
				mRet = mSes.mailSend(mMsg)
				IF mRet <> mailReturnSuccess! THEN
					MessageBox('Error: Correo no enviado!', dw_para.GetItemString(ll_row,"nombre")+": "+dw_para.GetItemString(ll_row,"e_mail"))
				END IF
			END IF
			ll_row++
		LOOP
		file_name=""
		sle_file.Text=""
 
	mSes.mailLogoff()
	DESTROY mSes
	END IF
END IF
// Fin del script....
---------------------------------------
Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Enviar email

Publicado por Frank P. (50 intervenciones) el 06/02/2014 19:43:15
Hola!, ahi te envio los objetos que yo utilizo para el envio de correo (lo que hago es trabajar directamente con el servidor SMTP debido a que algunos PC's no tienen instalado el Outlook), no recuerdo de donde los descargué pero es una variante de los que descargaste en esa página que indicas.

0° importar los objetos adjuntos

1° antes que todo tienes que crear estas variables globales:

1
2
3
4
// PARA EL ENVIO DE CORREO
n_smtp gn_smtp
//PARA EL ZIPEADO
n_zlib gn_zlib


2° Tienes que configurar la funcion f_enviar_correo:

1
2
gn_smtp.of_SetPort(25)//por el puerto de salida especificado en el servidor
gn_smtp.of_SetServer("nombre del server") //en mi caso es xxxxx.xxxxxxxx.com

3° te paso el código que utilizo, pero puedes modificarlo a tu antojo, en caso de destinatario yo uso uno solo, pero también podrias modificarlo como array, tendrías que leer los objetos n_winsock y/o n_smtp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
string para_dir, para_nombre, asunto, mensaje, archivos[], nombre_usu, cc_dir[], correo_usu
 
para_dir = 'destinatario@correo.com'
para_nombre = 'nombre destinatario'
asunto = "ASUNTO DEL CORREO"
mensaje = "MENSAJE DEL CORREO"
archivos[1] = 'C:\archivo1.txt'
archivos[2] = 'C:\archivo2.docx'
archivos[3] = 'C:\archivo3.jpg'
nombre_usu = 'NOMBRE DEL USUARIO QUE ENVIA'
cc_dir[1] = 'concopia1@correo.com'
cc_dir[2] = 'concopia2@correo.com'
cc_dir[3] = 'concopia3@correo.com'
correo_usu = 'remitente@correo.com'
if f_enviar_correo(para_dir,para_nombre,asunto,mensaje,archivos,nombre_usu,cc_dir,correo_usu) = true then
	messagebox('AVISO',"Correo Enviado Satisfactoriamente...")
else
	messagebox('AVISO',"No se Pudo Enviar Correo Electrónico...")
	return
end if

4° te envio tmb un objeto para comprimir archivos adjuntos, en caso que el servidor con que trabajas tenga un límite y esta sería la codificación de su uso.

1
2
3
4
5
6
7
8
9
10
11
12
13
ls_pathname[1] = 'C:\Temp\reporte.xlsx'
ls_filename[1] = 'reporte.xlsx'
ls_pathname[2] = 'C:\Temp\reporte.docx'
ls_filename[2] = 'reporte.docx'
is_zipfile = 'C:\Temp\reporte.zip'
ls_fname = 'reporte.zip'
SetPointer(HourGlass!)
lul_zipFile = gn_zlib.of_zipOpen(is_zipfile)
li_count = UpperBound(ls_pathname)
FOR li_file = 1 TO li_count
               gn_zlib.of_ImportFile(lul_zipFile, ls_pathname[li_file], ls_filename[li_file])
NEXT
gn_zlib.of_zipClose(lul_zipFile, "Zip archive created by Frank P.")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email

Publicado por Marco (1 intervención) el 21/05/2014 06:48:53
Hola Frank, buen día.
Estoy tratando de implementar lo que has posteado, pero no logro hacerlo con una cuenta de gmail.
smtp.gmail.com
Dime donde pongo el puerto, donde el nombre de usuario y donde el pass.

Gracias.
Marco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email

Publicado por Nick (2 intervenciones) el 07/11/2014 00:03:00
Hola Marco, tbn estoy tratando de enviar correo por gmail, alguien sabe como?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email

Publicado por Carolina (150 intervenciones) el 27/04/2015 21:10:27
Hola, una pregunta, puedo trabajar con el servidor SMTP , si estoy trabajando con power builder 9?
Porque hasta ahora lo hice configurando el outlook pero tengo 2 problemas: 1º)SIEMPRE me pide permiso para enviar el mail (esto capaz que es porque tengo algo mal configurado en el outlook) y 2º) que si tengo cerrado el outlook, hasta que lo abro y pongo "enviar y recibir" no manda el mail.
Asique mi pregunta es la siguiente: el usuario tiene que tener configurado el outlook y además debe estar minimizado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email

Publicado por Gerardo Palma (3 intervenciones) el 04/06/2018 18:49:04
Hola, lograste solventar el problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email

Publicado por GerardoPalma (3 intervenciones) el 04/06/2018 18:51:18
Hoal Frank, oye tengo un serio problema al intentar usar la libreria me cierra powerbuilder12.5, alguna idea de cual sea el problema,la dll incluida se deba icluir en alguna carpeta particular? hay un proceso ademas de tu perfecto codigo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email

Publicado por Gerardo Palma (3 intervenciones) el 04/06/2018 23:21:12
Hoal Frank crees que puedas mostrar la funcioncomo la tienes codificada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email

Publicado por ms (1 intervención) el 20/11/2018 15:43:49
Como debe ir la función f_enviar_correo, que parámetros de entrada y salida deben tener. Etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar