USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  ASP - Active Server Page    (Miscelâneas)

Título da Dica:  Enviando SMS
Postada em 17/10/2003 por Mago_Pc            
Ficheiro: Default.htm

<Html>
<Head>
<Script language="JavaScript">
<!--
function MM_validateForm() { //v2.0
var i,objStr,field,theCheck,atPos,theNum,colonPos,min,max,errors='';
for (i=0; i<(MM_validateForm.arguments.length-2); i+=3) {
objStr = MM_validateForm.arguments[(navigator.appName == 'Netscape')?i:i+1];
if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
(objStr.indexOf('document.all[') ==0 && document.all ==null))
objStr = 'document'+objStr.substring(objStr.substring(0,objStr.lastIndexOf('.')).
lastIndexOf('.'),objStr.length); //fix layer ref if not supp
field = eval(objStr);
field.name = (field.name)?field.name:objStr;
theCheck = MM_validateForm.arguments[i+2];
if (field.value) { //IF NOT EMPTY FIELD
if (theCheck.indexOf('isEmail') != -1) { //CHECK EMAIL
atPos = field.value.indexOf('@');
if (atPos < 1 || atPos == (field.value.length - 1))
errors += '- '+field.name+' must contain an e-mail address. ';
} else if (theCheck != 'R') { //START NUM CHECKS
theNum = parseFloat(field.value);
if (field.value != ''+theNum) errors += '- '+field.name+' must contain a number. ';
if (theCheck.indexOf('inRange') != -1) { //CHECK RANGE
colonPos = theCheck.indexOf(':');
min = theCheck.substring(8,colonPos);
max = theCheck.substring(colonPos+1,theCheck.length);
if (theNum < min || max < theNum) //bad range
errors += '- '+field.name+' must contain a number between '+min+' and '+max+'. ';
} } }
else if (theCheck.charAt(0) == 'R') errors += '- '+field.name+' is required. ';
}
if (errors) alert('The following error(s) occurred: '+
errors);
document.MM_returnValue = (errors == '')
}
//-->
</script>
</head>
<body bgcolor="#ffffff" link="#022941" vlink="#FFFFFF" alink="#FFFFFF">
<table width="790" border="0" cellspacing="0" cellpadding="0" height="100%" align="center" vspace="0" hspace="0">
<tr align="center">
<th height="38" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="5" color="#022941">Servi&ccedil;o
de mensagens escritas atrav&eacute;s de e-mail</font></th>
</tr>
<tr align="center">
<td height="306" valign="top">
<form method="post" action="confirma.asp" name="SMS" onSubmit="MM_validateForm('document.SMS.DeNome',
'document.SMS.DeNome','R','document.SMS.NumeroTelemovel',
'document.SMS.NumeroTelemovel','RinRange910000000:969999999',
'document.SMS.Mensagem','document.SMS.Mensagem','R');return document.MM_returnValue">
<table border="0" cellspacing="2" cellpadding="2">
<tr bgcolor="#022941">
<td width="500"><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#FFFFFF">:.
SMS - Servi&ccedil;o Mensagens Escritas</font>
</td>
</tr>
<tr valign="top">
<td>
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#022941">De:</font><br>
&nbsp;&nbsp;
<input type="text" name="DeNome" size="40" maxlength="20">
<br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#022941">Para
(n&ordm; de telem&oacute;vel):</font><br>
&nbsp;&nbsp;
<input type="text" name="NumeroTelemovel" size="9" maxlength="9">
<br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#022941">Mensagem:</font><br>
&nbsp;&nbsp;
<textarea name="Mensagem" cols="40" rows="4"></textarea>
</p>
</td>
</tr>
<tr bgcolor="#022941">
<td>
<input type="submit" name="Submit" value=" Enviar ">
<input type="reset" name="Submit2" value=" Limpar ">
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr align="left">
<td height="33"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#022941">Por:
<a href="mailto:josebarros@netytal.pt">Jos&eacute; Barros</a></font></td>
</tr>
</table>
<br>
</body>
</html>
A utilização de JavaScript é apenas para verificar se os campos estão preenchidos antes de fazer o post, o que permite poupar algum tempo.
Agora é necessário recolher esta informação numa outra página e depois "tratá-la".
Continuamos...
Ficheiro: Confirma.asp

<html>
<head>
<%
' Dimensionando as constantes.
dim denome
dim Numero
dim mensagem
dim errol
dim contagem
dim NumeroErrado
dim assunto
dim mailpara
' Através deste passo recolhemos os dados do formulário
' O nome de quem envia:
denome = Request.form("DeNome")
' O número do celular para onde é enviada a mensagem:
Numero = Request.form("NumeroTelemovel")
' Isto é para que o número passe de página para página...
session("Numero")=Numero
' Mensagem a enviar
Mensagem = Request.form("Mensagem")

' Vamos verificar se foi ultrapassado o limite de carateres.
' Eu usei 500 pois a OPTIMUS
'aceita até 640 caracteres.
' Para que o serviço funcione pode-se diminuir de valor...
contagem=len(mensagem)
' Os valores do goby serão referenciados de seguida.
If contagem>=500 Then
goby="0"
else
goby="1"
End If
' O assunto (Subject)
assunto="Mensagem enviada por " & denome & "."
' Atribuimos um valor para a constante NBumeroErrado, caso o
'número não comece por 91, 93 ou 96.
NumeroErrado="0"
'Opera = aos primeiros 2 dígitos do número.
OPera=midB(Numero,1,3)
'Para o caso o número ser OPTIMUS
if OPera=93 then
mailpara=Numero&"@sms.optimus.pt"
'caso contrário
else
'para o caso seja TMN, operadora de Portugal
if OPera=96 then
mailpara=Numero&"@mail.tmn.pt"
'caso contrário
else
'Para o caso ser TELECEL, operadora de Portugal
if OPera=91 then
mailpara=Numero&"@sms.telecel.pt"
'Caso não seja de nenhum, existe um erro, o número introduzido é errado...
else
NumeroErrado="1"
end if
end if
end if
' Já temos valores para apresentar resultados
' Já sabemos se foi ultrapassado o limite de caracteres e se o número
' que foi introduzido está correto.
' Se estas duas condições estiverem corretas, ótimo, podemos
' prosseguir, caso contrário, teremos que corrigi-las.
%>
</head>
<body bgcolor="#ffffff" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%" align="center" vspace="0" hspace="0">
<tr valign="top" align="center">
<td>
<table width="500" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr align="center">
<td width="600" rowspan="3" height="100%" valign="top"> <font face="Verdana, Arial, Helvetica, sans-serif" size="5" color="#022941">Confirma&ccedil;&atilde;o</font><br>
<br>
<%
' Caso o goby seja "0", significa que foi ultrapassado o limite de caracteres...
if goby="0" then
%>
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr bgcolor="#022941">
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#FFFFFF">:.
Erro
</font></td>
</tr>
<tr>
<td height="57"><font color="#022941"><font face="Verdana, Arial, Helvetica, sans-serif">O
campo da mensagem não pode conter mais do que 500 caracteres.
</font></font></td>
</tr>
<tr bgcolor="#022941">
<td>
<input type="submit" name="Submit3" value=" <<-- Retroceder " onClick="parent.history.back(); return false;">
</td>
</tr>
</table>
<%
' Caso contrário, goby >< 0, passemos à fase seguinte, número
' correto ou número errado?
else
' Caso o número esteja errado:
if NumeroErrado="1" then
%>
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr bgcolor="#022941">
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#FFFFFF">:.
Erro
</font></td>
</tr>
<tr>
<td><font color="#022941"><br>
<font face="Verdana, Arial, Helvetica, sans-serif">Este servi&ccedil;o
s&oacute; est&aacute; dispon&iacute;vel apenas para redes portuguesas,
Optimus (93 xxx xx xx), Telecel (91 xxx xx xx),
TMN (96 xxx xx xx).<br>
</font></font><font color="#022941" face="Verdana, Arial, Helvetica, sans-serif">O
n&uacute;mero que voc&ecirc; introduziu (</font><font color="#022941"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><%=session("Numero")%></font></font><font color="#022941" face="Verdana, Arial, Helvetica, sans-serif">),
n&atilde;o &eacute; de nenhum operador, deste modo, n&atilde;o
nos &eacute; poss&iacute;vel entregar a sua mensagem.</font><br>
</td>
</tr>
<tr bgcolor="#022941">
<td>
<input type="submit" name="Submit33" value=" <<-- Retroceder " onClick="parent.history.back(); return false;">
</td>
</tr>
</table>
<font color="#022941"> </font>
<%
' Se chegamos a este ponto, está todo correto, o utilizador pode
' agora confirmar o envio ou então voltar para corrigir algo.
Else
' agora criamos mais um "form" com "Hidden Fields" isto porque a componente que está instalada
'no servidor que eu estou só aceita dados já atribuídos ou através de
'um "form", não aceita variáveis...
%>
<form method="post" action="SMSsend.asp" name="SMSsend">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr bgcolor="#022941">
<td><font color="#022941"><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#FFFFFF">:.
Confirme se &eacute; isto que pretende enviar</font>
</font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#022941">DE
:<br>
<font size="2">&nbsp;&nbsp; <%=denome%> </font><br>
<input type="hidden" name="denome" value="<%=denome%>">
</font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#022941">Para
: <br>
<font size="2">&nbsp;&nbsp;&nbsp;
<%
' Aqui dizemos qual aOperadora móvel em questão.
Response.Write session("Numero")
if MidB(session("Numero"),1,3)=93 then
Response.Write(" ( OPTIMUS )")
end if
if MidB(session("Numero"),1,3)=96 then
Response.Write(" ( TMN )")
end if
if MidB(session("Numero"),1,3)=91 then
Response.Write(" ( TELECEL )")
end if
%></font><br>
<input type="hidden" name="NomePara" value="<%=session("Numero")%>">
<br>
<input type="hidden" name="emailpara" value="<%=mailpara%>">
</font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#022941">
<input type="hidden" name="assunto" value="<%=assunto%>">
</font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#022941">Mensagem:
<br>
<font size="2">&nbsp;&nbsp;&nbsp;<%=Mensagem%></font><br>
<input type="hidden" name="Mensagem" value="<%=Mensagem2%>">
</font></td>
</tr>
<tr bgcolor="#022941">
<td>
<input type="submit" name="Submit" value=" Sim, enviar. ">
<input type="submit" name="Submit32" value=" N&atilde;o, retroceder. " onClick="parent.history.back(); return false;">
</td>
</tr>
</table>
</form>
<p> <%
' Fechamos os IF's...
end if
end if
%>
</td>
</tr>
<tr></tr>
<tr> </tr>
</table>
</td>
</tr>
</table>
<br>
</body>
</html>
Para finalizar, vamos enviar a mensagem.
A componente de e-mail existente deverá alterar para a que você usa.
O processo é semelhante.
Ficheiro: SMSsend.asp
<html>
<head>
<title>SMSsend.asp</title></head>
<body bgcolor="#ffffff" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%" align="center" vspace="0" hspace="0">
<tr valign="top" align="center">
<td>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="600" height="100%" valign="top">
s
</td>
</tr>
<tr>
<td width="600" height="100%" valign="top">
<p><font color="#022941"><br>
<%
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName = "Nome"
Mailer.FromAddress= "email@host.pt"
Mailer.RemoteHost = "O seu host: ex.: mail.host.pt "
Mailer.Priority = 1
Mailer.AddRecipient Request.Form("NomePara"), Request.Form("emailpara")
Mailer.Subject = Request.Form("assunto")
Mailer.BodyText = Request.Form("mensagem")
if Mailer.SendMail then
msgenv=1
else
msgenv=0
errol=Chr(34)& Mailer.Response &Chr(34)
end if
if msgenv=1 then
%> <br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="3"> A sua
mensagem foi enviada com sucesso para o n.º <%=session("Numero")%>.<br>
Aproveite tamb&eacute;m para <a href="default.htm"><font size="3"><u>enviar</u></font></a>
a outra pessoa.<br>
</font><font color="#022941">
<%
else
%>
</font></font></p>
<form method="post" action="mailto:seu-email@seu-provedor?subject: Erro no envio de SMS" name="SMS2">
<font color="#022941"><font face="Verdana, Arial, Helvetica, sans-serif" size="3">Ocorreu
um erro ao enviar a mensagem.<br>
O erro foi:</font><font color="#022941"><%=errol%></font><font face="Verdana, Arial, Helvetica, sans-serif">.<br>
Se este erro persistir reporte-o ao webmaster, usando o bot&atilde;o
que se segue.<br>
Desde j&aacute; obrigado.<br>
<input type="hidden" name="Erro" value="<%=errol%>">
<br>
<input type="submit" name="Submit" value=" Notificar webmaster ">
</font>.</font> <br>
</form>
<%
end if
' Muito importante !!! convém ter isto no final, pois assim acaba com qualquer sessão !! e liberta o servidor...
session.abandon
%>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
</body>
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página