Ya he logrado hacer funcionar un formulario ne mi servidor asp mediante System.Web.Mail y la clase MailMessage.
Mi duda es como debo poner en el asunto ...., el código para que recoga los campos del flash. Os dejo el código que funciona sin flash todo en asp, para ver que debo poner para que recoga los datos de flash:
Código :
<%@ Page Language="VB" %>
<!DOCTYPE "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub btnEnviar_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'
Dim correo As New System.Net.Mail.MailMessage()
correo.From = New System.Net.Mail.MailAddress(txtDe.Text)
correo.To.Add(txtPara.Text)
correo.Subject = txtAsunto.Text
txtTexto.Text &= vbCrLf & vbCrLf & _
"Fecha y hora GMT: " & _
DateTime.Now.ToUniversalTime.ToString("dd/MM/yyyy HH:mm:ss")
correo.Body = txtTexto.Text
correo.IsBodyHtml = False
correo.Priority = System.Net.Mail.MailPriority.Normal
'
Dim smtp As New System.Net.Mail.SmtpClient
'
'---------------------------------------------
' Estos datos debes rellanarlos correctamente
'---------------------------------------------
smtp.Host = "smtp.1and1.es"
'smtp.Credentials = New System.Net.NetworkCredential("usuario", "password")
'smtp.EnableSsl = False
'
Try
smtp.Send(correo)
LabelError.Text = "Mensaje enviado satisfactoriamente"
Catch ex As Exception
LabelError.Text = "ERROR: " & ex.Message
End Try
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Esto (en ASP.NET 2.0) no se ejecuta... si AutoEventWireup="false"
If Not IsPostBack Then
txtTexto.Text = "Hola," & vbCrLf & _
"Esto es una prueba de envio de correo usando ASP.NET 2.0 con Visual Basic" & vbCrLf & _
"Saludos!!!"
LabelError.Text = ""
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Prueba para enviar correo usando ASP.NET 2.0 (Visual Basic)</title>
<meta name="robots" content="noindex" />
</head>
<body>
<form id="form1" runat="server">
<table style="width: 550px">
<tr>
<td valign="top">
<asp:Label ID="Label1" runat="server" Text="De:"></asp:Label></td>
<td>
<asp:TextBox ID="txtDe" runat="server" Width="95%" BackColor="Gainsboro" ReadOnly="True">[email protected]</asp:TextBox></td>
</tr>
<tr>
<td valign="top">
<asp:Label ID="Label2" runat="server" Text="Para:"></asp:Label></td>
<td>
<asp:TextBox ID="txtPara" runat="server" Width="95%">la cuenta a quien envías el mensaje</asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtPara" ErrorMessage="El formato del correo no es válido" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator></td>
</tr>
<tr>
<td valign="top">
<asp:Label ID="Label3" runat="server" Text="Asunto:"></asp:Label></td>
<td>
<asp:TextBox ID="txtAsunto" runat="server" Width="95%">Prueba de envio de correo con ASP.NET 2.0 (C#)</asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtAsunto" ErrorMessage="Debes escribir el asunto"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td valign="top">
<asp:Label ID="Label4" runat="server" Text="Texto:"></asp:Label></td>
<td>
<asp:TextBox ID="txtTexto" runat="server" Columns="50" Rows="10" TextMode="MultiLine"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtTexto" ErrorMessage="Debes escribir algo en el texto"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td> </td>
<td><asp:Button ID="btnEnviar" runat="server" Text="Enviar" OnClick="btnEnviar_Click" /></td>
</tr>
<tr>
<td> </td>
<td><asp:Label ID="LabelError" runat="server" Text=""></asp:Label></td>
</tr>
</table>
</form>
</body>
</html>
Código flash del tutorial:
//Declaro las variables para enviar y para recibir
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
//Función que envia el forumlario
function enviarMail() {
envio_lv.asunto = asunto_txt.text;
envio_lv.email = email_txt.text;
envio_lv.cuerpo = cuerpo_txt.text;
envio_lv.telefono = telefono_txt.text;
envio_lv.sendAndLoad("email.asp", recibir_lv, "POST");
//Aqui ustedes pueden cambiar de form.php a form.asp dependiendo del servidor
//que usen
}
//Función que procesa los datos recibidos del servidor
recibir_lv.onLoad = function(exito) {
if (exito) {
estado_txt.text = this.estado;
} else {
//Muestra un mensaje de error en negrita
estado_txt.text = "Error en la aplicación de correo";
}
};
Saludossss, muchas graciasss