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

Gravar no banco e disparar e-mail!


Vagner Nunes

Pergunta

Prezados,

Boa tarde, preciso da ajuda dos senhores mais uma vez.

Tenho um formulário de cadastro que grava em um banco access, até aí tudo bem, porém meu superior me solicitou que além de gravar no banco, ele quer que este mesmo formulário, além de gravar no banco, envie um e-mail para um e-mail cadastrado no campo de e-mail cadastradol

formulário - gravar no banco

- enviar e-mail.

Como posso fazer isso, não tenho nem idéia de como começar, alias tive, porém grava no banco grava direito, mas o e-mail que é bom mesmo não aparece.

Seria muito grato se alguém pode me ajudar nesta missão.

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Também não entendi... Acho que o Bareta viu só os primeiros posts... quando seu script ainda tava em cdonts...

O script também me parece bem completo... falta um formzinho anterior ali mas que fica bem fácil de imaginar e desenvolver...

Enfim... taí!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Cara... quando você postou ali seu código achei que tava funcionando beleza já! Chê... isso é simples... conseguiremos resolver... posta aí a mensagem de erro que está aparecendo, a linha específica do erro e o código completo com a posição mais atual...

Abração...

Link para o comentário
Compartilhar em outros sites

  • 0

tenta monta seu código sem o dreanweaver...

pag.form ------ > pag.recebe 
                                  |
                               conexao com banco
                                           |
                                       cadastro
                                          |
                                envio do email
                                    |
                              fecha a conexao

vai montando pouco a pouco ai... com código proprio..

Link para o comentário
Compartilhar em outros sites

  • 0

Quando o professor digita o endereço a página Index.asp é carregada, nesta página ele digitará o nome e uma senha, que é o campo indentificação. Daí quando for clicado em Prosseguir abrirá a página solicitacao.asp.

Abaixo a página index.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/Conectar.asp" -->
<%
Dim Solicitante
Dim Solicitante_numRows

Set Solicitante = Server.CreateObject("ADODB.Recordset")
Solicitante.ActiveConnection = MM_Conectar_STRING
Solicitante.Source = "SELECT * FROM solicitantes"
Solicitante.CursorType = 0
Solicitante.CursorLocation = 2
Solicitante.LockType = 1
Solicitante.Open()

Solicitante_numRows = 0
%>

         <form action="solicitacao.asp" method="get" name="form1" id="form1" onsubmit="MM_validateForm('solicitante','','R','identificacao','','R');return document.MM_returnValue">
            <label>            </label>
            <table width="437" border="0">
              <tr>
                <td width="85" bgcolor="#F0F0F0"><div align="right">Professor:</div></td>
                <td width="342" bgcolor="#999999"><div align="left">
                  <input name="solicitante" type="text" id="solicitante" size="55" />
                </div></td>
                </tr>
              <tr>
                <td bgcolor="#F0F0F0"><div align="right">Identifica&ccedil;&atilde;o:</div></td>
                <td bgcolor="#999999"><div align="left">
                  <input name="identificacao" type="password" id="identificacao" size="15" />
                </div></td>
                </tr>
              <tr>
                <td bgcolor="#F0F0F0">&nbsp;</td>
                <td bgcolor="#999999"><label>
                  <div align="left">
                    <input type="submit" name="Submit" value="Prosseguir &gt;&gt;" />
                    </div>
                </label></td>
              </tr>
            </table>
            <p>&nbsp;</p>
            <label></label>
              </form>
          </div></td>
      </tr><%
Solicitante.Close()
Set Solicitante = Nothing
%>
Segue abaixo a página solicitacao.asp
%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/Conectar.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form1") Then

  MM_editConnection = MM_Conectar_STRING
  MM_editTable = "solicitacoes"
  MM_editRedirectUrl = "sucess_solicitacao_coordenacao.asp"
  MM_fieldsStr  = "solicitante|value|curso|value|disciplina|value|email|value|titulo|value|autor|value|bibliografia|value|edicao|value|editora|value|nbiblioteca|value|nsolicitados|value|emailcoord|value|aprovado|value"
  MM_columnsStr = "solicitante|',none,''|curso|',none,''|disciplina|',none,''|email|',none,''|titulo|',none,''|autor|',none,''|bibliografia|',none,''|edicao|',none,''|editora|',none,''|nbiblioteca|',none,''|nsolicitados|',none,''|emailcoord|',none,''|aprovado|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
  
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
<%
Dim Solicitante__MMColParam
Solicitante__MMColParam = "1"
If (Request.QueryString("identificacao") <> "") Then 
  Solicitante__MMColParam = Request.QueryString("identificacao")
End If
%>
<%
Dim Solicitante
Dim Solicitante_numRows

Set Solicitante = Server.CreateObject("ADODB.Recordset")
Solicitante.ActiveConnection = MM_Conectar_STRING
Solicitante.Source = "SELECT * FROM solicitantes WHERE identificacao = '" + Replace(Solicitante__MMColParam, "'", "''") + "'"
Solicitante.CursorType = 0
Solicitante.CursorLocation = 2
Solicitante.LockType = 1
Solicitante.Open()

Solicitante_numRows = 0
%> <form ACTION="<%=MM_editAction%>" METHOD="POST" name="form1">
            <table width="756" align="center">

              <tr valign="baseline">
                <td align="right" nowrap="nowrap" bgcolor="#EFEFEF"><div align="left">Solicitante:</div></td>
                <td bgcolor="#666666">                    <div align="left">
                  <input name="solicitante" type="text" value="<%=(Solicitante.Fields.Item("solicitante").Value)%>" size="75" />                
                </div></td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap="nowrap" bgcolor="#EFEFEF"><div align="left">Curso:</div></td>
                <td bgcolor="#666666"><div align="left">
                    <input name="curso" type="text" value="<%=(Solicitante.Fields.Item("curso").Value)%>" size="55" />
                </div></td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap="nowrap" bgcolor="#EFEFEF"><div align="left">Disciplina:</div></td>
                <td bgcolor="#666666"><div align="left">
                    <input name="disciplina" type="text" value="<%=(Solicitante.Fields.Item("disciplina").Value)%>" size="65" />
                </div></td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap="nowrap" bgcolor="#EFEFEF"><div align="left">Email:</div></td>
                <td bgcolor="#666666">
                      <div align="left">
                        <input name="email" type="text" value="<%=(Solicitante.Fields.Item("email").Value)%>" size="45" />
                      </div></td></tr>
              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF">&nbsp;</td>
                <td bgcolor="#666666">&nbsp;</td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF"><div align="left"></div></td>
                <td bgcolor="#666666"><div align="left"></div></td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap="nowrap" bgcolor="#EFEFEF"><div align="left">Titulo:</div></td>
                <td bgcolor="#666666"><div align="left">
                    <input type="text" name="titulo" value="Descreva o t&iacute;tulo" size="75" />
                </div></td>
              </tr>
              <tr valign="baseline">
                <td width="104" align="right" nowrap bgcolor="#EFEFEF"><p align="left">Autor:</p></td>
                <td width="640" bgcolor="#666666">
                  <div align="left">
                    <input type="text" name="autor" value="Descreva o autor" size="40">                
                    </div></td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF"><div align="left">Bibliografia:</div></td>
                <td bgcolor="#666666">
                  <div align="left">
                    <label>
                    <select name="bibliografia" id="bibliografia">
                      <option value="Basica">B&aacute;sica</option>
                      <option value="Complementar">Complementar</option>
                    </select>
                    </label>
</div></td>
              </tr>

              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF"><div align="left">Edicao:</div></td>
                <td bgcolor="#666666">
                  <div align="left">
                    <input type="text" name="edicao" value="10 ed." size="10">
                    Editora:                
                    <input type="text" name="editora" value="Saraiva" size="32" />
                  </div></td>
              </tr>



              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF"><div align="left">N. Biblioteca:</div></td>
                <td bgcolor="#666666">
                  <div align="left">
                    <input type="text" name="nbiblioteca" value="00" size="10" />
                  N. Solicitados:
                  <input type="text" name="nsolicitados" value="00" size="10" />
</div></td>
              </tr>


              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF"><div align="left"></div></td>
                <td bgcolor="#666666">&nbsp;</td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF"><div align="left">E-mail do Coord.: </div></td>
                <td bgcolor="#666666"><div align="left">
                  <input name="emailcoord" type="text" id="emailcoord" value="<%=(Solicitante.Fields.Item("emailcord").Value)%>" size="55" />
                </div></td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF">&nbsp;</td>
                <td bgcolor="#666666"><div align="left">
                  <input type="submit" value="Enviar">                
                </div></td>
              </tr>
              <tr valign="baseline">
                <td align="right" nowrap bgcolor="#EFEFEF"><div align="right"></div></td>
                <td bgcolor="#666666">
                  <div align="left">
                    <input name="aprovado" type="hidden" id="aprovado" value="não" />
                  </div></td></tr>
            </table>
          
            
          
            <input type="hidden" name="MM_insert" value="form1">
          </form><%
set conexao = Server.CreateObject("ADODB.Connection")
conexao.open "Driver={Microsoft Access Driver (*.mdb)};Dbq=Y:\Relacionamento 2008\Biblioteca\solicitacoes\bd\solicitacoes.mdb"

vsolicitante= request.form("solicitante") 
vemail= request.form("email")
vemailcoord= request.form("emailcoord")
vtitulo= request.form("titulo") 
vautor= request.form("autor")
vnsolicitados= request.form("nsolicitados")

Set rs = conexao.execute(sql)


If request.querystring("form1") = 1 then
   Set mail = CreateObject("CDOSYS.NewMail")
   mail.From = request.form("email") ' e-mail de quem esta enviando a mensagem 
   mail.To = request.form("emailcoord")  ' e-mail de quem vai receber a mensagem 
   mail.CC = "biblioteca@cesat.br" ' Com Cópia 
   'mail.BodyFormat = 1 ' parametro de formatação 
   'mail.MailFormat = cdoMailFormatText ' parametro de formatação 
   'mail.AttachFile "e:\home\login\dados\arquivo.txt" 'caso queira anexar algum arquivo ao seu e-mail
   mail.Subject = "BIBLIOTECA - SOLICITAÇÃO DE MATERIAIS - " & request.form("solicitante")
   mail.Body = "Solicitante: " & request.form("solicitante") & vbCrLf  & "E-mail: " & request.form("email") & vbCrLf & "Título: " & request.form("titulo") & vbCrLf & "Autor: " & request.form("autor") & vbCrLf & "Quant. Solicitadaos: " & request.form("nsolicitados")
   mail.Send 
   Set mail = Nothing 
else

end if

%>
</body>
</html>
<%
Solicitante.Close()
Set Solicitante = Nothing
%>

A idéia da página solicitacao.asp grava no banco e envia o e-mail para um coordenador de curso, que nesta página também mostra os dados dos professores: tipo nome dele, curso, disciplina, e-mail do coordenador já ficam preenchido, onde ele somente preencherá os outros campos da solicitação, porém quando é gravado, se grava tudo no banco e queria também fosse enviado o e-mail também, mas não consigo.

Aparece erro abaixo:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x1b5c Thread 0x854 DBC 0x3f84f8c Jet'.

/biblioteca/solicitacoes/solicitacao.asp, line 329

Mesmo dando este erro aparace o formulário que está gravando no banco normalmente aparecendo a página sucess_solicitacao_coordenacao.asp.

Creio eu que seja as linhas do e-mail que está apresentando erro.

Muito obrigado pela ajuda dos senhores.....

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

  • 0

Provaveis causas do erro:

1) caminho para o BD incorreto (causa mais provável);

2) bd ou tabelas inexistentes;

3) problemas com permissões;

4) raríssima falha na abertura da conexão... (tentar outras formas... mas somente em último caso.)

Para saber como resolver os problemas de permissões clique aqui: http://scriptbrasil.com.br/forum/index.php?showtopic=28873

Se nada disso resolver, responda: está usando servidor local ou datacenter?

Abração

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...