Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Sobre Como Enviar E-mails Com O Winsock


Zer0

Pergunta

galera, seguinte, eu achei um aplicativo na internet que envia e-mails (alias, o unico que funcionou direito aqui...), beleza, ele funcionava e tals, dai eu instalei o Service Pack 2 do WinXP e o SP6 do VB, e o aplicativo parou de funcionar.... não consigo mais enviar e-mails atraves do VB, de jeito nenhum.... já tentei outros exemplos, outros programas e nada..... sera que tem alguma coisa a ver com o SP2 do Win ou o SP6 do VB??? eles poderiam estar bloqueando o envio via winsock???

outra coisa, alguém ai pode me ajudar a fazer um que realmente funcione??? estou precisando incorporar um "enviador de emails" ao meu aplicativo p/ o usuario poder enviar relatorios p/ outra pessoa...

se alguém puder exclarecer minhas duvida e/ou puder me ajudar com o winsock p/ enviar emails.... eu fico grato..... por favor galera, é urgente esse aplicativo =///

vlws

Link para o comentário
Compartilhar em outros sites

23 respostass a esta questão

Posts Recomendados

  • 0

tah ai oh, esse foi o que funcionou alem do 1o (o 1o é muito grande p/ eu postar aqui, porque ele tinha varias funcoes e tals...), + esse funcionava direitinho também.... + agora não funciona +.... segue o codigo

Dim Response As String, Reply As Integer, DateNow As String
Dim first As String, Second As String, Third As String
Dim Fourth As String, Fifth As String, Sixth As String
Dim Seventh As String, Eighth As String
Dim Start As Single, Tmr As Single



Sub SendEmail(MailServerName As String, FromName As String, FromEmailAddress As String, ToName As String, ToEmailAddress As String, EmailSubject As String, EmailBodyOfMessage As String)
          
    Winsock1.LocalPort = 0 ' Must set local port to 0 (Zero) or you can only send 1 e-mail pre program start
    
If Winsock1.State = sckClosed Then ' Check to see if socet is closed
    DateNow = Format(Date, "Ddd") & ", " & Format(Date, "dd Mmm YYYY") & " " & Format(Time, "hh:mm:ss") & "" & " -0600"
    first = "mail from:" + Chr(32) + FromEmailAddress + vbCrLf ' Get who's sending E-Mail address
    Second = "rcpt to:" + Chr(32) + ToEmailAddress + vbCrLf ' Get who mail is going to
    Third = "Date:" + Chr(32) + DateNow + vbCrLf ' Date when being sent
    Fourth = "From:" + Chr(32) + FromName + vbCrLf ' Who's Sending
    Fifth = "To:" + Chr(32) + ToNametxt + vbCrLf ' Who it going to
    Sixth = "Subject:" + Chr(32) + EmailSubject + vbCrLf ' Subject of E-Mail
    Seventh = EmailBodyOfMessage + vbCrLf ' E-mail message body
    Ninth = "mouse mailer" + vbCrLf ' What program sent the e-mail, customize this
    Eighth = Fourth + Third + Ninth + Fifth + Sixth  ' Combine for proper SMTP sending

    Winsock1.Protocol = sckTCPProtocol ' Set protocol for sending
    Winsock1.RemoteHost = MailServerName ' Set the server address
    Winsock1.RemotePort = 25 ' Set the SMTP Port
    Winsock1.Connect ' Start connection
    
    WaitFor ("220")
    
    StatusTxt.Caption = "Connecting...."
    StatusTxt.Refresh
    
    Winsock1.SendData ("HELO BlaH" + vbCrLf)

    WaitFor ("250")

    StatusTxt.Caption = "Connected"
    StatusTxt.Refresh

    Winsock1.SendData (first)

    StatusTxt.Caption = "Sending Message"
    StatusTxt.Refresh

    WaitFor ("250")

    Winsock1.SendData (Second)

    WaitFor ("250")

    Winsock1.SendData ("data" + vbCrLf)
    
    WaitFor ("354")


    Winsock1.SendData (Eighth + vbCrLf)
    Winsock1.SendData (Seventh + vbCrLf)
    Winsock1.SendData ("." + vbCrLf)

    WaitFor ("250")

    Winsock1.SendData ("quit" + vbCrLf)
    
    StatusTxt.Caption = "Disconnecting"
    StatusTxt.Refresh

    WaitFor ("221")

    Winsock1.Close
Else
    MsgBox (Str(Winsock1.State))
End If
  
End Sub
Sub WaitFor(ResponseCode As String)
    Start = Timer ' Time event so won't get stuck in loop
    While Len(Response) = 0
        Tmr = Start - Timer
        DoEvents ' Let System keep checking for incoming response **IMPORTANT**
        If Tmr > 50 Then ' Time in seconds to wait
            MsgBox "SMTP service error, timed out while waiting for response", 64, MsgTitle
            Exit Sub
        End If
    Wend
    While Left(Response, 3) <> ResponseCode
        DoEvents
        If Tmr > 50 Then
            MsgBox "SMTP service error, impromper response code. Code should have been: " + ResponseCode + " Code recieved: " + Response, 64, MsgTitle
            Exit Sub
        End If
    Wend
Response = "" ' Sent response code to blank **IMPORTANT**
End Sub


Private Sub Command1_Click()
    SendEmail txtEmailServer.Text, txtFromName.Text, txtFromEmailAddress.Text, txtToEmailAddress.Text, txtToEmailAddress.Text, txtEmailSubject.Text, txtEmailBodyOfMessage.Text
    'MsgBox ("Mail Sent")
    StatusTxt.Caption = "Mail Sent"
    StatusTxt.Refresh
    Beep
    
    Close
End Sub

Private Sub Command2_Click()
    
    End
    
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

    Winsock1.GetData Response ' Check for incoming response *IMPORTANT*

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0
Experimente o componente Py.Sendmail: http://www.graymalkin.globalhosts.com.br/pysendmail.asp. Talvez você goste dele e funcione aí (é possível que o SP2 esteja impedindo o envio de e-mails, então é mais um para você poder testar).

Abraços,

Graymalkin

cara, aqui também não funcionou sad.gif... mas muito obrigado pela ajuda..... tipow, tem alguma configuracao do sp2 que eu possa fazer p/ poder liberar o envio??? se for preciso, como eu removo o sp2???

vlws

Link para o comentário
Compartilhar em outros sites

  • 0
cara, aqui também não funcionou sad.gif... mas muito obrigado pela ajuda..... tipow, tem alguma configuracao do sp2 que eu possa fazer p/ poder liberar o envio??? se for preciso, como eu removo o sp2???

Humm... pior que isso eu não sei. Não instalei o SP2 aqui justamente porque ouvi falar muito desses lances de que ele tranca várias portas. Mas, você consegue enviar e-mails pelo Outlook Express? Configurando ele com o mesmo servidor SMTP que você tentou a partir do VB?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

acabei de testar aqui, e consigo enviar atraves do outlook express (pelo SMTP: mx2.hotmail.com, sem configurar senha, nem usuario, nem nada, só o SMTP, dai envia e eu recebo na minha outra conta de email).... ai fui testar pelo winsock.... não deu em nada, diz que o email foi enviado com sucesso... + não recebo nada na minha outra conta de email =///

acho q então é problema com o winsock, não???

Link para o comentário
Compartilhar em outros sites

  • 0
acabei de testar aqui, e consigo enviar atraves do outlook express (pelo SMTP: mx2.hotmail.com, sem configurar senha, nem usuario, nem nada, só o SMTP, dai envia e eu recebo na minha outra conta de email).... ai fui testar pelo winsock.... não deu em nada, diz que o email foi enviado com sucesso... + não recebo nada na minha outra conta de email =///

acho q então é problema com o winsock, não???

Pode ser que não. Já ouvi falar de uma determinada informação que o Outlook coloca na mensagem e que permite que ela seja enviada por certos servidores (algo que diga que aquela mensagem não é um spam). Não sei exatamente o que é, mas seria melhor se você pudesse testar em outros servidores e não só do Hotmail.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

hmm.. entendi... + tipow, eu sempre usava esse servidor p/ mandar e-mails p/ meus amigos (nunca gostei do outlook...ai enviava por winsock)...

EDITADO: galera, consegui arrumar aqui... simplesmente achei a informacao que o Graymalkin comentou que o Outlook coloca e tals.... seria essa oh:

"qualquer-nome-sem-espaco: EBT Reporter"

pronto! agora eu consigo enviar e-mails via Winsock...

vlws Graymalkin.... muito obrigado mesmo..... agora, me surgiu uma duvida... como que eu faco p/ mandar emails no estilo HTML?? tipow, se o usuario digita numa textbox algo assim:

"caro <b>Graymalkin</b>..."

no email recebido eu vou ter esse resultado

"caro Graymalkin..."

obrigado + uma vez...

Link para o comentário
Compartilhar em outros sites

  • 0

hmm.. entendi... + tipow, eu sempre usava esse servidor p/ mandar e-mails p/ meus amigos (nunca gostei do outlook...ai enviava por winsock)...

EDITADO: galera, consegui arrumar aqui... simplesmente achei a informacao que o Graymalkin comentou que o Outlook coloca e tals.... seria essa oh:

"qualquer-nome-sem-espaco: EBT Reporter"

pronto! agora eu consigo enviar e-mails via Winsock...

vlws Graymalkin.... muito obrigado mesmo.....

biggrin.giflaugh.gif Eu é que agradeço! Agora vou poder incluir essa informação no Py.Sendmail (já tinham me falado dela, mas a pessoa que me falou não disse qual era e não retornou o e-mail no qual eu perguntei). Valeu!

agora, me surgiu uma duvida... como que eu faco p/ mandar emails no estilo HTML?? tipow, se o usuario digita numa textbox algo assim:

"caro <b>Graymalkin</b>..."

no email recebido eu vou ter esse resultado

"caro Graymalkin..."

obrigado + uma vez...

Para isso você vai ter que dar uma pesquisada sobre a codificação MIME de mensagens de e-mail. Só pra ter uma idéia, um e-mail com o que você quer seria formado por:

Content-Type: multipart/mixed; boundary="===============1124912375=="
MIME-Version: 1.0
From: de@servidor.com.br
To: para@servidor.com.br
Subject: Assunto

--===============1124912375==
Content-Type: text/html; charset="iso-8859-1"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

caro <b>Graymalkin</b>...
--===============1124912375==--

Se isso tudo aí chegar em uma mensagem, o leitor de e-mail vai interpretar e mostrar direitinho.

Falou? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

vixi galera, tive q trocar meu HD (deu problema no outro) e fiz o backup desse programa que envia e-mails, beleza, no HD antigo ele enviava o e-mail tranquilamente.... + quando coloquei o programa no novo HD, deu a mesmo coisa: não consigo enviar + e-mails via winsock.... alguém sera que pode me ajudar??? (já testei o mesmo servidor SMTP pelo outlook e funciona, + via winsock não.... e é o mesmo programa q funcionava antes de eu trocar o HD =/)

Link para o comentário
Compartilhar em outros sites

  • 0

vixi galera, tive q trocar meu HD (deu problema no outro) e fiz o backup desse programa que envia e-mails, beleza, no HD antigo ele enviava o e-mail tranquilamente.... + quando coloquei o programa no novo HD, deu a mesmo coisa: não consigo enviar + e-mails via winsock.... alguém sera que pode me ajudar??? (já testei o mesmo servidor SMTP pelo outlook e funciona, + via winsock não.... e é o mesmo programa q funcionava antes de eu trocar o HD =/)

Link para o comentário
Compartilhar em outros sites

  • 0

não sei qual seria o problema, porque eu enviava antes, salvei o programa que funcionava num cd, troquei de HD, e quando passei os arquivos p/ o novo HD, o programa simplesmente fala q já enviou o e-mail, + não chega e nenhuma conta q eu use..... e o servidor SMTP eu testei no Outolook e funcionou sem problemas.... =/// já estou ficando louco... pois precisava disso urgente e não consigo fazer funcionar =////

Link para o comentário
Compartilhar em outros sites

  • 0
:blink: Olá a todos...sou uma ameba mongolóide ainda neste negócio, mas preciso enviar relatórios direto no corpo do e-mail...baixei o Pysend, mas....como faço pro configurar o programa...e como uso? hehehe

Veja os exemplos que acompanham o componente.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Wildcat --

Cara, já vi, já setei no meu Access, mas mesmo assim ele num funca, num tem jeito...ele me dá um erro (10061 Conection Refused)

.......tem como setar pra enviar direto do localhost? talvez o servidor não permita conexão pop3...ou talvez eu esteja mais perdido que cego em tiroteio

Link para o comentário
Compartilhar em outros sites

  • 0
Cara, já vi, já setei no meu Access, mas mesmo assim ele num funca, num tem jeito...ele me dá um erro (10061 Conection Refused)

.......tem como setar pra enviar direto do localhost? talvez o servidor não permita conexão pop3...ou talvez eu esteja mais perdido que cego em tiroteio

Não, pelo localhost você não tem como enviar. Qual o SMTP utilizado?

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...