no message

git-svn-id: https://svn.coded.pt/svn/SIPRP@452 bb69d46d-e84e-40c8-a05a-06db0d633741
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
P Santos 21 years ago
parent 439d4facc8
commit a9b6eb2699

@ -7,9 +7,15 @@
package siprp.pagina;
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.velocity.*;
import org.apache.velocity.app.*;
/**
*
* @author psantos
@ -19,8 +25,135 @@ public class RequestServlet extends HttpServlet
public void doPost( HttpServletRequest req, HttpServletResponse res )
throws IOException
{
ServletOutputStream out = res.getOutputStream();
res.setContentType( "text/html" );
/*
parametros:
request_name
request_phone
request_email
request_details
*/
// recebe info de contacto
Hashtable parameters = parseParameters( new Hashtable( req.getParameterMap() ) );
// manda mail
// mostra pagina de sucesso
boolean success = sendMail( parameters );
// mostra pagina correspondente
out.println( showResultPage( success ) );
}
private String showResultPage( boolean success )
{
VelocityContext context = new VelocityContext();
StringWriter output = new StringWriter();
String template;
if( success )
{
template = "pedido_enviado.html";
}
else
{
template = "pedido_nao_enviado.html";
}
try
{
Velocity.mergeTemplate( "mail/" + template, Velocity.ENCODING_DEFAULT, context, output );
return output.toString();
}
catch( Exception e )
{
e.printStackTrace();
}
return null;
}
private boolean sendMail( Hashtable parameters )
{
String smtp_server = "localhost";
//String from = "psantos@evolute.pt";
String subject = "Pedido de informação através do site www.siprp.pt";
String mailer = "Evolute Mailer";
// Dados da form de pedido de informacao
String name = ( String ) parameters.get( "request_name" );
String phone = ( String ) parameters.get( "request_phone" );
String email = ( String ) parameters.get( "request_email" );
String details = ( String ) parameters.get( "request_details" );
String destination = "psantos@evolute.pt";
Properties props = System.getProperties();
props.put( "mail.smtp.host", smtp_server );
Session session = Session.getInstance( props, null );
Message msg = new MimeMessage( session );
try
{
VelocityContext context = new VelocityContext();
StringWriter content = new StringWriter();
msg.setFrom( new InternetAddress( email ) );
msg.setRecipients( Message.RecipientType.TO, InternetAddress.parse( destination, true ) );
msg.setSubject( subject );
context.put( "name", name );
context.put( "phone", phone );
context.put( "email", email );
context.put( "details", details );
Velocity.mergeTemplate( "mail/pedido_informacao.txt", Velocity.ENCODING_DEFAULT, context, content );
msg.setContent( content.toString(), "text/plain" );
msg.setHeader( "X-Mailer", mailer );
msg.setSentDate( new Date() );
Transport.send( msg );
return true;
}
catch( Exception e )
{
e.printStackTrace();
}
return false;
}
private String checkParameter( String parameter )
{
if( parameter != null && parameter.trim().length() > 0 )
{
return parameter.trim();
}
return null;
}
public Hashtable parseParameters( Hashtable parameters )
{
Hashtable tmp = new Hashtable();
String[] element;
String key;
String new_element;
for( Enumeration e = parameters.keys(); e.hasMoreElements(); )
{
key = ( String ) e.nextElement();
element = ( String[] ) parameters.get( key );
if( element != null )
{
new_element = checkParameter( element[ 0 ] );
if( new_element != null )
{
tmp.put( key, new_element );
}
}
}
return tmp;
}
}

@ -4,6 +4,56 @@
<link rel="stylesheet" href="../css/style.css" type="text/css">
<title>SIPRP - Apresenta&ccedil;&atilde;o</title>
</head>
<script language="javascript" src="../css/funcs.js"></script>
<script language="javascript">
function isValidEmail( email )
{
var pattern=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
return pattern.test( email );
}
function check_info_request()
{
form_is_valid = true;
error_fields = "";
if( document.request_form.request_name.value.length == 0 )
{
error_fields += "- Nome\n";
form_is_valid = false;
}
if( document.request_form.request_phone.value.length == 0 )
{
error_fields += "- Telefone\n";
form_is_valid = false;
}
if( document.request_form.request_email.value.length == 0 )
{
error_fields += "- e-mail\n";
form_is_valid = false;
}
else
{
if( ! isValidEmail( document.request_form.request_email.value ) )
{
alert( "e-mail inválido." );
return false;
}
}
if( document.request_form.request_details.value.length == 0 )
{
error_fields += "- Assunto\n";
form_is_valid = false;
}
if( ! form_is_valid )
{
alert( "É necessário preencher os campos seguintes:\n" + error_fields );
}
return form_is_valid;
}
</script>
<body class="text" style="background-color: transparent;">
SIPRP &#8211; Sociedade Ib&eacute;rica de Preven&ccedil;&atilde;o de Riscos
Profissionais<br>
@ -15,6 +65,40 @@ Pra&ccedil;a Duque de Saldanha, 1 &#8211;
<br>
Telefone: 21 350 45 40<br>
Fax: 21 350 45 49<br>
E-mail: geral@siprp.pt<br>
E-mail: <a href='mailto:geral@siprp.pt'>geral@siprp.pt</a><br>
<br>
<div style="text-align: left;">
<span id='span_info_id' style="font-weight: bold; text-decoration: underline; cursor: pointer" onmousedown="return false;" onclick="showhide('info_id')">Pedir mais informa&ccedil;&otilde;es</span><br>
<br>
<div id='info_id' style="display: none">
<form method='post' action='/siprpWeb/request' name='request_form'>
<table border="0" cellspacing="2" cellpadding="2" width="100%">
<tr valign="top">
<td class="text" style='text-align: right'><strong>Nome*:</strong></td>
<td class="text"><input type="text" class="text" size="40" name="request_name"></td>
</tr>
<tr valign="top">
<td class="text" style='text-align: right'><strong>Telefone*:</strong></td>
<td class="text"><input type="text" class="text" size="35" name="request_phone"></td>
</tr>
<tr valign="top">
<td class="text" style='text-align: right'><strong>e-mail*:</strong></td>
<td class="text"><input type="text" class="text" size="35" name="request_email"></td>
</tr>
<tr valign="top">
<td class="text" style='text-align: right'><strong>Assunto*:</strong></td>
<td class="text"><textarea rows="5" cols="45" class="text" name="request_details"></textarea></td>
</tr>
<tr valign="top">
<td class="text" colspan="2" style='text-align: center'><input type='submit' value='Enviar' onclick="return check_info_request();"></td>
</tr>
<tr valign="top">
<td class="text" colspan='2' style='text-align: center'>* Campos de preenchimento obrigat&oacute;rio</td>
</tr>
</table>
</form>
</div>
</body>
</html>

@ -3,8 +3,9 @@
<html>
<head>
<link rel="stylesheet" href="html/css/style.css" type="text/css">
<title>Erro a enviar</title>
</head>
<body>
Erro a enviar o seu pedido
<span class="text">Erro a enviar o seu pedido</span>
</body>
</html>

Loading…
Cancel
Save