Jump to content
Fivewin Brasil

envio de email pelo hb_sendmail


mamp

Recommended Posts

estou tendo um problema de envio de email pelo hb_sendmail, ela nao da erro, mas tambem nao envia o email

segue codigo:

Function Enviahbemail()

HB_SendMail( 'smtp.bol.com.br', , 'macedo.marcos@bol.com.br', ;

'macedomarcos@hotmail.com', , , "Teste de envio SAI" , ;

"ENVIO SAI" , , 'macedo.marcos@bol.com.br' , 'senha' ,;

'pop3.bol.com.br' , , ,.t., .t., , , )

Return (.t.)

se alguem puder me ajudar, obrigado

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com

Link to comment
Share on other sites

estou tendo um problema de envio de email pelo hb_sendmail, ela nao da erro, mas tambem nao envia o email

segue codigo:

Function Enviahbemail()

HB_SendMail( 'smtp.bol.com.br', , 'macedo.marcos@bol.com.br', ;

'macedomarcos@hotmail.com', , , "Teste de envio SAI" , ;

"ENVIO SAI" , , 'macedo.marcos@bol.com.br' , 'senha' ,;

'pop3.bol.com.br' , , ,.t., .t., , , )

Return (.t.)

se alguem puder me ajudar, obrigado

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com

Link to comment
Share on other sites

Tem um monte de rotinas de envio de emails, já prontas neste forum, na pagina principal, faça uma busca por EMAIL.

Se não conseguir, avise. Esta rotina usa o OUTLOOK EXPRESS?

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

kapiaba, estou nesta a um bom tempo, uns 2 meses se nao me engano, ja dei a busca como voce me disse e todas as rotinas que tentei, fazem a mesma coisa ou seja, "nao da mensagem de erro, mas tambem nao envia o email", e outras dao erro e nao saem do lugar. Ai numa das conversas no MSN encontrei o Luiz culikr que me disse:

- "Rapaz pode esquecer tudo isto use o nativo co xharbour, use o HB_sendmail()"

fui usar e continua a mesma coisa, ate onde eu falei com ele(enquanto ele me espondia) este "nativo do xharbour", nao fuciona se usar o hotmail, mas como voce ve to usando o BOL, mas nao esta funcionado e o Luiz nao responde mais a sequencia de email que mandei pra ele, a ultima sequencia era que nao funcionava com hotmail, mas passei pra BOL e esta do memso jeito.

Voce tem alguma rotina pronta que voce usa?, pode me mandar(pra o meu email) - macedomarcos@hotmail.com

obrigado.

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com

Link to comment
Share on other sites

Retire o que não vai usar... Dúvidas, pergunte.

//-> Incluido em: 16/09/2009 - Joao - Precisa do OutLook Express Instalado.

//-> Rotina By Rossine e Yuri, Forum FiveWin Brasil. Funcionou perfeito.


FUNCTION ENVIAR_EMAIL()

LOCAL cSubject, cNoteText, cMsgType, cConversationID, dDate, cTime, ;

lReceipt, lFromUser, aOrigin, aRecipients, aFiles, oMail, ;

EmailCliente, cChave, cXml, cValNF

PUBLIC wNomeEmpresa

TONE(900,2)

//-> Abre Notas Fiscais

SELECT CADNFE

IF CADPARAM->TPAMB = [1]

SET ORDER TO 03

ELSE

SET ORDER TO 01

ENDIF

SEEK NFECOD2 //-> Numero da Nota Fiscal

IF FOUND()

SELECT CADFATUR

IF CADPARAM->TPAMB = [1]

SET ORDER TO 07 //-> Por NFECOD - Indice

SEEK CADNFE->NFECOD

ELSE

SET ORDER TO 01 //-> Por FATURCOD - Indice

SEEK CADNFE->FATURCOD

ENDIF

ELSE

TONE(900,2)

MsgStop( OemToAnsi( "Aten‡Æo usu rio: " ) +CRLF+ ;

OemToAnsi( "Nota fiscal nÆo localizada " ) +CRLF+ ;

OemToAnsi( "para gerar o Email do Cliente. " ), ;

OemToAnsi( "Impossivel enviar o email... " ) )

XFOCUS( oNota )

RETURN NIL

ENDIF

//-> Se achou o cliente em CADFATUR.DBF - la em cima

IF FOUND()

cValNF := CADFATUR->TOTNF //-> Certo isto Paulo?

SELECT CADCLIEN

SET ORDER TO 01

SEEK CADFATUR->CLIENCOD

ELSE

TONE(900,2)

MsgStop( OemToAnsi( "Aten‡Æo usu rio: " ) +CRLF+ ;

OemToAnsi( "Nota fiscal nÆo localizada " ) +CRLF+ ;

OemToAnsi( "para gerar o Email do Cliente. " ), ;

OemToAnsi( "Impossivel enviar o email... " ) )

XFOCUS( oNota )

RETURN NIL

ENDIF

//-> Se achou o cliente em CADCLIEN.DBF

IF FOUND()

// aEmpresa = Sql_Array("select nome from empresa") //Ex. do Z‚

aEmpresa := CADCLIEN->CLIENTE

//-> Verifica se o cliente tem email cadastrado em CADCLIEN.DBF

// aTabela = Sql_Array("select nome,email from clientes where cliente = "+Str(cCliente,6))

aTabela := LOWER( CADCLIEN->EMAILNFE ) //-> Email do Cliente

IF CADCLIEN->EMAILNFE = [ ] //-> se estiver vazio

TONE(900,2)

ALTERAR_EMAIL_CLIENTE( DeOndeVem := "ENVIAR_EMAIL" )

RETURN NIL

ENDIF

ELSE

TONE(900,2)

MsgStop( OemToAnsi( "Aten‡Æo usu rio: " ) +CRLF+ ;

OemToAnsi( "Empresa nÆo localizada em CADCLIEN.DBF" ) +CRLF+ ;

OemToAnsi( "para gerar o Email do Cliente/Empresa." ), ;

OemToAnsi( "Impossivel enviar o email... ERRO! " ) )

XFOCUS( oNota )

RETURN NIL

ENDIF

//----------------------------------------------------------------------//

TONE(900,2)

//-> Assunto do Email enviado

cSubject := "Nota Fiscal Eletrônica - Arquivo XML"

//-> Corpo do Email

cNoteText := "Prezado Cliente:" +CRLF+CRLF+;

ALLTRIM( CADCLIEN->CLIENTE ) +CRLF+CRLF+;

"Para suas devidas providencias, " + ;

"segue em anexo o arquivo digital, " + ;

"padrão XML, que deu origem " + ;

"a nossa Nota Fiscal Eletrônica com as " + ;

"seguintes características: " +CRLF+CRLF+;

"Número: "+STRZERO( NFECOD2 ) +CRLF+ ;

"Emissão: " + DTOC( CADFATUR->DTEMIS ) +CRLF+ ;

"Valor: " + ;

TRANSF(( cValNF ),"@E 999,999,999.99") +CRLF+CRLF+;

"Atenciosamente," +CRLF+CRLF+;

ALLTRIM(wNomeEmpresa) //-> Nome do Remetente/Enviador

cMsgType := "C"

cConversationID := ""

dDate := DATE()

cTime := TIME()

lReceipt := .F.

lFromUser := .T.

aOrigin := {""} //-> Email de quem enviou, nao precisa informar

//-> Email do Cliente que vai receber

//-> aRecipients := {"joao@pleno.com.br"} //-> Exemplo Original

//-> Pegando o Email do Cliente do Banco de dados CADCLIEN.DBF

EmailCliente := LOWER(ALLTRIM( CADCLIEN->EMAILNFE ) )

//-> Transformo para ficar igual ao exemplo

aRecipients := { EmailCliente } //-> email final para enviar

//-> Anexos do email - Original

//-> aFiles := {"c:\TORBAL2\SS.TXT"}

//-> A chave de acesso da NF-e

cChave := ALLTRIM(CADNFE->CHAVEACES)

cXml := cPathNFe := CURDRIVE() + ":\" + GETCURDIR() + ;

"\REMESSA\ENVIADAS\" + ;

ALLTRIM( cChave ) + ;

"nfe.xml"

aFiles := { cXml } //-> Aquivo para anexxar

//----------------------------------------------------------------------//

//-> Envia o Email - Disparo para o OutLoox Express

oMail:=TMail():New( cSubject , ;

cNoteText , ;

cMsgType , ;

cConversationID, ;

dDate , ;

cTime , ;

lReceipt , ;

lFromUser , ;

aOrigin , ;

aRecipients , ;

aFiles )

//-> Ativa o OutLook Express - OutLook Express, Tem que ser PADRÇO

oMail:Activate()

IF ( oMail:nRetCode ) == 2 .OR. ( oMail:nRetCode ) == 26

TONE( 900, 2 )

MsgStop( OemToAnsi( "Aten‡Æo usu rio: Favor Anotar. " )+CRLF+;

OemToAnsi( "Ocorreu algum problema com seu Outlook " )+CRLF+;

OemToAnsi( "Express. Tente solucionar o Problema: " )+CRLF+;

OemToAnsi( " " )+CRLF+;

OemToAnsi( " no BotÆo: do Windows: " )+CRLF+;

OemToAnsi( "Configura‡äes. " )+CRLF+;

OemToAnsi( "Painel de Controle " )+CRLF+;

OemToAnsi( "Op‡äes da Internet " )+CRLF+;

OemToAnsi( " na Aba Programas " )+CRLF+;

OemToAnsi( " " )+CRLF+;

OemToAnsi( "Verifique: Se nÆo estiver, troque. " )+CRLF+;

OemToAnsi( " " )+CRLF+;

OemToAnsi( "Embaixo de Onde Estiver Escrito: " )+CRLF+;

OemToAnsi( " " )+CRLF+;

OemToAnsi( "Vocˆ Pode Especificar Que Programa o " )+CRLF+;

OemToAnsi( "Windows Utiliza Automaticamente Para " )+CRLF+;

OemToAnsi( "Cada Servi‡o de Internet. PadrÆo Abaixo: " )+CRLF+;

OemToAnsi( " " )+CRLF+;

OemToAnsi( "Email: OutLook Express - PadrÆo ‚ este. " )+CRLF+;

OemToAnsi( "Grupo de Noticias: OutLook Express " )+CRLF+;

OemToAnsi( " " )+CRLF+;

OemToAnsi( "NÆo Use o Microsoft Office OutLook. " )+CRLF+;

OemToAnsi( " " )+CRLF+;

OemToAnsi( "Permitido: Microsoft OutLook Express " )+CRLF+;

OemToAnsi( " " )+CRLF+;

OemToAnsi( "Se nÆo solucionar, entre em contato. " ), ;

OemToAnsi( "OutLook Express - Instala‡Æo Obrigat¢ria. " ) )

ENDIF

//-> Fecha o Outlook Express

oMail:End()

TONE(900,2)

SELECT CADNFE

RETURN( .T. )

id=code>id=code>

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

joao@pleno.com.br

Fone: (11) 3106-2832 / 8243-5632

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

citação:

estou tendo um problema de envio de email pelo hb_sendmail, ela nao da erro, mas tambem nao envia o email

segue codigo:

Function Enviahbemail()

HB_SendMail( 'smtp.bol.com.br', , 'macedo.marcos@bol.com.br', ;

'macedomarcos@hotmail.com', , , "Teste de envio SAI" , ;

"ENVIO SAI" , , 'macedo.marcos@bol.com.br' , 'senha' ,;

'pop3.bol.com.br' , , ,.t., .t., , , )

Return (.t.)

se alguem puder me ajudar, obrigado

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com


id=quote>id=quote>

esperimenta assim:


HB_SendMail( 'smtp.bol.com.br',;

,;

'macedo.marcos@bol.com.br',;

{'macedomarcos@hotmail.com'},; // aqui é um arrayid=red>

,;

,;

"Teste de envio SAI" ,;

"ENVIO SAI" ,;

,;

'macedo.marcos@bol.com.br' ,;

'senha' ,;

'pop3.bol.com.br' ,;

,;

,;

.t.,;

.t.,;

,;

,;

)

id=code>id=code>

Marllon Figueiredo

Tecnologia de Sistemas

siscat@siscat.com.br

FWH+xHb+SQL+SQLRDD+xDevStudio

aplicacoes.gif

Você quer proteger seu software da PIRATARIA? Me consulte como!

Link to comment
Share on other sites

kapiaba, adaptei para o microsoft outlook, instalei na minha maquina e dando certo instalo nos clientes e tudo bem , porem na adaptacao esta dando um erro de

--- nao foi possivel localizar o objeto ---

com a adaptacao ficou assim.

local cArq:="c:\sai\sempre.txt"

cSubject = "Teste de envio Sempre"

cNoteText = "Isto é um teste de envio automatico de email do sistema SAI"

cMsgType = "C"

cConversationID = ""

dDate = Date()

cTime = Time()

lReceipt = .F.

lFromUser = .T.

aOrigin = {"macedo.marcos@bol.com.br"}

aRecipients = {"macedomarcos@hotmail.com"}

aFiles = { cArq }

oMail:=TMail():New(cSubject,;

cNoteText,;

cMsgType ,;

cConversationID ,;

dDate,;

cTime,;

lReceipt,;

lFromUser,;

aOrigin,;

aRecipients,;

aFiles)

activate mail oMail

return nil

tem como ve dar uma olhada e ve onde estou errando?

tem que acrescentar alguama DLL, .ch ou LIB?

obrigado

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com

Link to comment
Share on other sites

pessoal achei uma outra rotina de nvio de mail que é assim:

Loca oOutMail

Static nNume := 1

Publ oSockeMe1

Publ oSockeMe2

oWnd:SetMsg( "Enviando Internet E-Mail..." )

cDe := alltrim("macedo.marcos@bol.com.br")

cPa := alltrim("macedomarcos@hotmail.com")

cArquiv := "c:\sai\sempre.txt"

oOutMail := TSmtp():New( cIP,,oSockeMe2 ) // email server IP

oOutMail:bConnecting := { || oWnd:SetMsg( "Conectando "+cIP+"..." ) }

oOutMail:bConnected := { || oWnd:SetMsg( "Conectado em "+cIP+"..." ) }

oOutMail:SendMail( cDe,; // de

{ cPa } ,; // para

"Segue anexo pedido de produtos" ,; // Msg Tex

"Pedido de Produtos" ,; // Assunto

{ cArquiv } ) // Arquivo

oOutMail:bDone := { || SairSmtp(@nNume,nTota,oReor,cIP) }

ai olha o erro:

Called from: SAI999.prg => (b)ENVIAEM(4594)

Called from: TSMTP.PRG => TSMTP:SENDMAIL(0)

Called from: SAI999.prg => ENVIAEM(4601)

Called from: SAI999.prg => (b)MENUPRIM(1256)

Called from: MENU.PRG => TMENU:COMMAND(0)

Called from: WINDOW.PRG => TWINDOW:COMMAND(0)

Called from: => TWINDOW:HANDLEEVENT(0)

Called from: WINDOW.PRG => _FWH(0)

Called from: => WINRUN(0)

socorro, alguem pode me ajudar

Called from: WINDOW.PRG => TWINDOW:ACTIVATE(0)

Called from: SAI999.prg => MAIN(898)

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com

Link to comment
Share on other sites

pessoal achei mais uma rotina e nao da erro, mas tambem nao envia o email

LOCAL oSmtp, oEMail

LOCAL cSmtpUrl

LOCAL cSubject, cFrom, cTo, cBody, cFile

// preparing data for eMail

cSmtpUrl := "smtp://smtp.bol.com.br"

cSubject := "veja se funcionou"

cFrom := "macedo.marcos@bol.com.br"

cTo := "macedomarcos@hotmail.com"

cFile := ""

cBody := "este é um teste de enviar emails com: " + DtoC(Date()) + " " + Time

// preparing eMail object

oEMail := TIpMail():new()

oEMail:setHeader( cSubject, cFrom, cTo )

oEMail:setBody( cBody )

oEMail:attachFile( cFile )

// preparing SMTP object

oSmtp := TIpClientSmtp():new( cSmtpUrl )

// sending data via internet connection

IF oSmtp:open()

oSmtp:sendMail( oEMail )

oSmtp:close()

? "Email Enviado com Sucesso !!!"

ELSE

? "Erro no envio do email: ", oSmtp:lastErrorMessage()

ENDIF

como veem o desespero ja atacou, socorro novamente

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com

Link to comment
Share on other sites

de novo, desculpa agora segue codigo

Local oMail, aCustomer:={}

Local cSubject := "Test mail"

Local cMessage := "This is a test message."

AAdd( aCustomer, "macedomarcos@hotmail.com" )

DEFINE MAIL oMail SUBJECT cSubject TEXT cMessage

oMail:aRecipients = aCustomer

ACTIVATE MAIL oMail

MsgInfo( "mail sent" )

Return nil

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com

Link to comment
Share on other sites

Marcos, eu nao uso envio de email pelo sistema, nao sei te falar oq esta errado.

Eu soh achei aquela soluçao no forum internacional e passei p/ vc dar uma olhada, pelo jeito ta funcionando a dica do Manuel Mercado.

qq coisa, post la, naquele topico mesmo, tem muita gente la q usa este esquema q vc ker fazer de envio.

@braços Ale

aleseribeli@hotmail.com

Andradina/SP

logo01a.jpg

"Comitiva sem nois eh comitiva sem Festa!" id=red>

Editado por - Ale SB on 06/12/2009 11:17:32

Link to comment
Share on other sites

Marcos para resolver o seu problema de vez:


//--------------------------------------------------------------------------------------------------------------------//

Function fEmail()

Local oDlg, aCtl[ 22 ], oFont

Local cMailServer := PadR( "smtp.gmail.com", 60 ), ; // servidor de correo

cFrom := PadR( "remitente@gmail.com", 60 ), ; // remitente

cTo := PadR( "destinatarios@hotmail.com", 180 ), ; // destinatario (uno o varios separados con comas)

cBCC := PadR( "destinatarios@hotmail.com", 180 ), ; // copias ocultas a (uno o varios separados con comas)

cAttach := PadR( "c:\fwh\bitmaps\fivewin.bmp", 180 ), ;// archivo anexo (uno o varios separados con comas)

cSubject := Space( 60 ), ; // asunto

cBody := Space( 500 ), ; // cuerpo del mensaje

nPort := 465, ; // puerto usado por el servidor de correo

cUser := Space( 60 ), ; // nombre de usuario para autenticación

cPass := Space( 30 ) // contraseña para autenticación

DEFINE FONT oFont NAME "Arial" SIZE 0, -16

DEFINE DIALOG oDlg FROM 0, 0 TO 455, 703 PIXEL ;

COLORS CLR_BLUE, CLR_HBROWN ;

TITLE "CDOSYS Collaboration Data Objects for Windows 2000" ;

STYLE nOR( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU, WS_3DLOOK )

@ 10, 5 SAY aCtl[ 1 ] PROMPT "Servidor de Correo:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL

@ 10, 80 GET aCtl[ 2 ] VAR cMailServer OF oDlg ;

FONT oFont UPDATE PICTURE "@K" ;

COLORS CLR_BLUE, CLR_WHITE SIZE 206, 11 PIXEL

@ 10,294 SAY aCtl[ 3 ] PROMPT "Puerto:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 30, 11 PIXEL

@ 10,320 GET aCtl[ 4 ] VAR nPort OF oDlg ;

FONT oFont UPDATE PICTURE "@K ####" ;

COLORS CLR_BLUE, CLR_WHITE SIZE 24, 11 PIXEL

@ 24, 5 SAY aCtl[ 5 ] PROMPT "Remitente:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL

@ 24, 80 GET aCtl[ 6 ] VAR cFrom OF oDlg ;

FONT oFont UPDATE PICTURE "@K" ;

COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL

@ 39, 5 SAY aCtl[ 7 ] PROMPT "Destinatario:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL

@ 39, 80 GET aCtl[ 8 ] VAR cTo OF oDlg ;

FONT oFont UPDATE PICTURE "@K" ;

COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL

@ 54, 5 SAY aCtl[ 9 ] PROMPT "Copia para:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL

@ 54, 80 GET aCtl[ 10 ] VAR cBCC OF oDlg ;

FONT oFont UPDATE PICTURE "@K" ;

COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL

@ 69, 5 SAY aCtl[ 11 ] PROMPT "Adjuntar:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL

@ 69, 80 GET aCtl[ 12 ] VAR cAttach OF oDlg PICTURE "@K" ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_WHITE SIZE 253, 11 PIXEL // ACTION fAddAttach( aCtl[ 12 ] ) ; // descomentar para FWH 8.12 o posterior

@ 69,333 BUTTON "..." OF oDlg SIZE 10, 10 PIXEL ACTION fAddAttach( aCtl[ 12 ] )

@ 84, 5 SAY aCtl[ 13 ] PROMPT "Asunto:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 70, 11 PIXEL

@ 84, 80 GET aCtl[ 14 ] VAR cSubject OF oDlg ;

FONT oFont UPDATE PICTURE "@K" ;

COLORS CLR_BLUE, CLR_WHITE SIZE 264, 11 PIXEL

@ 99, 5 SAY aCtl[ 15 ] PROMPT "Autenticación: Usuario:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 80, 11 PIXEL

@ 99, 87 GET aCtl[ 16 ] VAR cUser OF oDlg ;

FONT oFont UPDATE PICTURE "@K" ;

COLORS CLR_BLUE, CLR_WHITE SIZE 118, 11 PIXEL

@ 99,213 SAY aCtl[ 17 ] PROMPT "Contraseña:" OF oDlg ;

FONT oFont UPDATE ;

COLORS CLR_BLUE, CLR_HBROWN SIZE 44, 11 PIXEL

@ 99,259 GET aCtl[ 18 ] VAR cPass OF oDlg PASSWORD ;

FONT oFont UPDATE PICTURE "@K";

COLORS CLR_BLUE, CLR_WHITE SIZE 85, 11 PIXEL

@118, 6 SAY aCtl[ 19 ] PROMPT "Cuerpo del mensaje" OF oDlg ;

SIZE 100, 11 PIXEL ;

FONT oFont COLORS CLR_BLUE, CLR_HBROWN

@126, 10 GET aCtl[ 20 ] VAR cBody OF oDlg ;

FONT oFont MULTILINE UPDATE ;

COLORS CLR_BLUE, CLR_WHITE SIZE 330, 72 PIXEL

@208,213 BUTTON aCtl[ 21 ] PROMPT "&Enviar" OF oDlg ;

FONT oFont SIZE 53, 16 PIXEL ;

ACTION fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort )

@208,292 BUTTON aCtl[ 22 ] PROMPT "&Salir" OF oDlg ;

FONT oFont SIZE 53, 16 PIXEL ACTION oDlg:End()

ACTIVATE DIALOG oDlg CENTERED ;

VALID ( oFont:End(), .T. )

Return Nil

//---------------------------------------------------------------------------------------------//

Function fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort )

Local oCfg, oMsg, oError, nEle, cToken, ;

aAttach := {}, ;

lAuth := ! Empty( cUser ) .and. ! Empty( cPass ), ;

nSendOpt := 2 // send using: 1 = pickup folder 2 = port

Default nPort := 25, ;

cSubject := "", ;

cBody := ""

If "GMAIL.COM" $ Upper( cMailServer ) .and. ( Empty( cUser ) .or. Empty( cPass ) )

MsgStop( "Com GMail são requeridos nome do usuario e senha", "Atenção" )

Return .f.

EndIf

CursorWait()

nEle := 1

While ! Empty( cToken := StrToken( cAttach, nEle++, "," ) )

AAdd( aAttach, cToken )

EndDo

Try

oCfg := CreateObject( "CDO.Configuration" )

With Object oCfg:Fields

:Item( cdoSMTPServer ):Value := Trim( cMailServer )

:Item( cdoSMTPServerPort ):Value := nPort

:Item( cdoSendUsing ):Value := nSendOpt

If lAuth

:Item( cdoSMTPAuthenticate ):Value := 1

:Item( cdoSendUserName ):Value := Trim( cUser )

:Item( cdoSendPassword ):Value := Trim( cPass )

:Item( cdoSMTPUseSSL ):Value := 1

EndIf

:Update()

End With

oMsg := CreateObject( "CDO.Message" )

With Object oMsg

:Configuration := oCfg

:From := Trim( cFrom )

:To := Trim( cTo )

:Subject := Trim( cSubject )

:TextBody := Trim( cBody )

For nEle := 1 To Len( aAttach )

:AddAttachment := AllTrim( aAttach[ nEle ] )

Next

If ! Empty( cBCC )

:BCC := Trim( cBCC )

EndIf

:Send()

End With

Catch oError

CursorArrow()

MsgStop( "Não foi possível enviar a mensagem" + CRLF + "Error: " + cValToChar( oError:GenCode) + CRLF + ;

"SubC: " + cValToChar( oError:SubCode ) + CRLF + "OSCode: " + cValToChar( oError:OsCode ) + CRLF + ;

"SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + "Mensagem: " + oError:Description )

oCfg := Nil

oMsg := Nil

Return .f.

End Try

oCfg := Nil

oMsg := Nil

// SndPlaySound( GetWinDir() + "\media\Tada.wav", 0 )

CursorArrow()

Return .t.

//---------------------------------------------------------------------------------------------//

Static Function fAddAttach( oGet )

Local cFile, ;

cAttach := oGet:VarGet()

cFile := cGetFile( "*.*", "Selecione o arquivo" )

If ! Empty( cFile )

cAttach := Lower( PadR( AllTrim( cAttach ) + If( ! Empty( cAttach ), ",", "" ) + AllTrim( cFile ), 180 ) )

EndIf

oGet:cText( cAttach )

Return Nil

id=code>id=code>

ABAIXO O "CdoSys.ch"


#ifndef _CDOSYS_CH

#define _CDOSYS_CH

#define cdoSMTPServer "http://schemas.microsoft.com/cdo/configuration/smtpserver"

#define cdoSMTPServerPort "http://schemas.microsoft.com/cdo/configuration/smtpserverport"

#define cdoSendUsing "http://schemas.microsoft.com/cdo/configuration/sendusing"

#define cdoSMTPPickupFolder "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory"

#define cdoSMTPAuthenticate "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"

#define cdoSendUserName "http://schemas.microsoft.com/cdo/configuration/sendusername"

#define cdoSendPassword "http://schemas.microsoft.com/cdo/configuration/sendpassword"

#define cdoSMTPUseSSL "http://schemas.microsoft.com/cdo/configuration/smtpusessl"

#define cdoSMTPConnectionTimeout "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"

#endif

id=code>id=code>

exemplo de como eu utilizo:


function envia_fale_cono( cAssunto, cMensagem )

Local cMailServer := PadR( "smtp.ig.com.br", 60 ), ; // servidor de correo

cFrom := PadR( "daniel_segura@ig.com.br", 60 ), ; // remitente

cTo := PadR( "ciacpd@hotmail.com", 180 ), ; // destinatario (uno o varios separados con comas)

cBCC := PadR( "daniel_segura@ig.com.br", 180 ), ; // copias ocultas a (uno o varios separados con comas)

cAttach := "",; // PadR( "c:\fwh\bitmaps\fivewin.bmp", 180 ), ; // archivo anexo (uno o varios separados con comas)

cSubject := "Empresa: "+xNome_Empre + " - " + cAssunto, ; // asunto

cBody := cMensagem, ; // Space( 500 ), ; // cuerpo del mensaje

nPort := 465, ; // puerto usado por el servidor de correo

cUser := "daniel_segura@ig.com.br", ; // Space( 60 ), ; // nombre de usuario para autenticación

cPass := "senhasenha" // Space( 30 ) // contraseña para autenticación

if fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort )

msginfo("E-mail enviado com sucesso."+CRLF+CRLF+"Entraremos em contato em breve.","E-Mail Fale Conosco.")

Else

msginfo("E-mail não enviado, verifique sua conecção com a internet.","E-Mail Fale Conosco.")

endif

return .t.

id=code>id=code>

Daniel Segura

Link to comment
Share on other sites

daniel , adapteri e ficou assim:

*******************

function Enviaem6()

*******************

Local cMailServer := PadR( "smtp.bol.com.br",60 ), ; //

cFrom := PadR( "macedo.marcos@bol.com.br", 60 ), ; //

cTo := PadR( "macedomarcos@hotmail.com", 180 ), ;

cBCC := PadR( "guilhermelithg@grupovila.com.br", 180 ), ;

cAttach := PadR( "c:\sai\sempre.txt", 180 ), ; // archivo anexo (uno

cSubject := "Empresa: Eclipse2047 - Teste SAI" , ; // asunto

cBody := "Teste de Envio automatico SAI ", ; // Space( 500 ), ;

nPort := 465, ; // p

cUser := "macedo.marcos@bol.com.br", ; // Space( 60 ), ; //

cPass := "senhasenha" // Space( 30 )

if fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser,cPass,cPort

msginfo("E-mail enviado com )sucesso."+CRLF+CRLF+"Entraremos em contato")

Else

msginfo("E-mail nÒo enviado, verifique sua conecþÒo com a internet.","")

endif

return .t.

esta rotina da dando o seguinte erro

error:1001

Subc : 3

OScode:0

SubSystem:CDO.message

Mensagem>DISP_C_MEMBERNOTFOUND

ai eu fico sem saber onde ver, tem como voce vr se na adaptacao eu errei en alguma coisa.

nao uso WS

Marcos Macedo(Recife-PE)

macedomarcos@hotmail.com

Link to comment
Share on other sites

Olá pessoal.

Adaptei a primeira rotina que o kapiaba postou nesse tópico para um dos meus programas, porém na primeira tentativa de enviar o email o oMail:nRetCode me retorna 2. Se logo depois eu tento enviar ele vai sem problemas.

O que esse retorno significa? Dei uma procurada na internet e não encontrei. E como poderia arrumar essa situação?

Obrigado pela ajuda!

EDIT: Pra dublar essa situação eu coloquei um FOR... mas eu queria saber o pq desse erro estranho.

Douglas Nunes

Santo André/SP

xHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 8.08

"Do or do Not. There is no Try."

Editado por - dnunes on 09/12/2009 17:20:07

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...