Quiero hacer una funcionalidad básica con un simple formulario de contacto y enviar los correos electrónicos del formulario a alguien. Esto es bastante fácil de hacer en asp.net, sin embargo, tengo problemas una vez que lo cargo como control de usuario. ¿Tienes un buen ejemplo que pueda mirar? ¡Gracias!Formulario de contacto en SiteFinity C#
Respuesta
Es lo mismo que tendría en una página asp.net normal, el ejemplo asume que está utilizando la última versión de Sitefinity y que tiene un RadScriptManager o ScriptManager en su página maestra.
En primer lugar aquí es mi forma de código subyacente ejemplo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
using System.Text;
using System.ComponentModel;
public partial class UserControls_LandingPage_contactForm : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
bool bSent = false;
try
{
//create the email and add the settings
var email = new MailMessage();
email.From = new MailAddress(FromEmail);
email.To.Add(new MailAddress(FromEmail));
email.Subject = Subject;
email.IsBodyHtml = true;
//build the body
var sBody = new StringBuilder();
sBody.Append("<strong>Contact Details</strong><br /><br />");
sBody.AppendFormat("Needs: {0}<br />", cboConsultationType.SelectedValue);
sBody.AppendFormat("Name: {0}<br />", txtName.Text);
sBody.AppendFormat("Email: {0}<br />", txtEmail.Text);
sBody.AppendFormat("Number: {0}<br />", txtPhone.Text);
sBody.AppendFormat("Comment: {0}<br />", txtMsg.Text);
email.Body = sBody.ToString();
//send the email
var smtpServer = new SmtpClient();
smtpServer.Send(email);
//mark as sent ok
bSent = true;
}
catch (Exception ex)
{
//send any errors back
//add your own custom handling of errors;
}
//let the end user know if it was a success
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('" + (bSent ? SuccessText : FailureText) + "');", true);
}
//properties
public string FromEmail
{
get { return _fromEmail; }
set { _fromEmail = value; }
}
public string Subject
{
get { return _subject; }
set { _subject = value; }
}
public string SuccessText
{
get { return _successText; }
set { _successText = value; }
}
public string FailureText
{
get { return _failureText; }
set { _failureText = value; }
}
//fields
private string _fromEmail = "[email protected]";
private string _subject = "Website Enquiry";
private string _successText = "Thank you for submitting your details we will be in touch shortly.";
private string _failureText = "There was a problem submitting your details please try again shortly.";
}
Código ASCX:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ContactForm.ascx.cs" Inherits="UserControls_LandingPage_contactForm" %>
<fieldset>
<div class="focus">
<label>
I need...</label>
<asp:DropDownList ID="cboConsultationType" runat="server" CssClass="select sub web">
<asp:ListItem Value="I Need A New Web Site">A completely new website</asp:ListItem>
<asp:ListItem Value="Web Site Upgrade">My website upgraded</asp:ListItem>
<asp:ListItem Value="Application Design">An application </asp:ListItem>
<asp:ListItem Value="An ecommerce website">New Ecommerce website</asp:ListItem>
<asp:ListItem Value="Other">Other</asp:ListItem>
</asp:DropDownList>
</div>
<ul>
<li>
<asp:Label EnableViewState="false" ID="lblErrorMessage" runat="server"></asp:Label>
</li>
<li>
<asp:Label EnableViewState="false" ID="lblName" AssociatedControlID="txtName" runat="server"
Text="Name"></asp:Label>
<asp:TextBox ID="txtName" runat="server" ValidationGroup="ContactValidation"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorName" runat="server" ValidationGroup="ContactValidation"
ControlToValidate="txtName" ErrorMessage="Name is required">*</asp:RequiredFieldValidator>
</li>
<li>
<asp:Label ID="lblPhone" runat="server" AssociatedControlID="txtPhone" EnableViewState="false"
Text="Phone"></asp:Label>
<asp:TextBox ID="txtPhone" runat="server" ValidationGroup="ContactValidation"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorPhone" runat="server" ValidationGroup="ContactValidation"
ControlToValidate="txtPhone" ErrorMessage="Phone is required">*</asp:RequiredFieldValidator>
</li>
<li>
<asp:Label ID="lblEmail" runat="server" AssociatedControlID="txtEmail" EnableViewState="false"
Text="Email"></asp:Label>
<asp:TextBox ID="txtEmail" runat="server" ValidationGroup="ContactValidation"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ValidationGroup="ContactValidation"
ControlToValidate="txtEmail" ErrorMessage="Email is required">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidatorEmail" runat="server"
ControlToValidate="txtEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ValidationGroup="ContactValidation" ErrorMessage="Email address is invalid">*</asp:RegularExpressionValidator>
</li>
<li>
<asp:Label ID="lblMsg" runat="server" AssociatedControlID="txtMsg" EnableViewState="false"
Text="How can we assist you?"></asp:Label>
<asp:TextBox ID="txtMsg" runat="server" TextMode="MultiLine" Rows="5" Wrap="true"></asp:TextBox>
</li>
<li>
<asp:Button ID="btnSubmit" runat="server" EnableViewState="false" CssClass="submit"
Text="Send" ValidationGroup="ContactValidation" OnClick="btnSubmit_Click" />
</li>
</ul>
</fieldset>
A continuación, los únicos otros elementos que necesita para tener cuidado de no está en el web.config tiene que modificar la configuración de system.net para el correo electrónico:
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.yourdomain.com" userName="Your_Username" password="Your_Password" port="25" />
</smtp>
</mailSettings>
</system.net>
A continuación, cargue el control o modifique su web.config. Luego, siempre que su servidor SMTP esté configurado correctamente, el formulario no debería enviar ningún problema.
Espero que esto te ayude.
Creo que un buen enfoque es utilizar el remitente de correo incorporado. Los beneficios son que se pueden configurar los ajustes dentro de la Administración-> Preferencias-> Avanzado-> Sistema-> SMTP
var smtpSettings = Config.Get<SystemConfig>().SmtpSettings;
MailMessage message = new MailMessage();
message.From = new MailAddress(smtpSettings.UserName);
message.To.Add(new MailAddress(toEmail));
StringBuilder sb = new StringBuilder();
sb.AppendFormat(body);
message.Subject = subject;
message.Body = sb.ToString();
message.IsBodyHtml = true;
message.BodyEncoding = Encoding.Unicode;
message.SubjectEncoding = Encoding.Unicode;
EmailSender.Get().Send(message);
Puede utilizar las notificaciones también.
- 1. Formulario de contacto en Rails 3
- 2. Prevención/reducción de spam - ¿Formulario de contacto?
- 3. Desinfección formulario de contacto y sin mysql_real_escape_string
- 4. Umbraco vs Sitefinity
- 5. Formulario de contacto en ruby, sinatra y haml
- 6. Mi formulario de contacto envía mensajes del cuerpo en blanco
- 7. ¿Cómo desactivo la opción de formulario de contacto personal en el formulario de edición de usuario?
- 8. Formulario de contacto Ajax/PHP simple con validación
- 9. PHPMailer v. Mail() para un formulario de contacto simple
- 10. Enviar correo electrónico php del formulario de contacto
- 11. Formulario de contacto por correo electrónico sin PHP
- 12. Contacto funcionalidad en Rails 3
- 13. redirigir a una página en particular después de enviar el formulario de contacto en Magento
- 14. "Iteración cero" - prueba de aceptación de extremo a extremo en función de formulario de contacto simple
- 15. cambiar el diseño de la columna del formulario de contacto en Magento
- 16. Formulario de contacto 7 - agregar una función personalizada en el envío de correo electrónico
- 17. ID de contacto único
- 18. Contacto de Gmail api
- 19. Contacto Bubble EditText
- 20. Problema con jQuery/jQuery UI y Sitefinity 4.0
- 21. ASP.Net CMS recomendación, Orchard, Sitefinity, Umbraco o N2?
- 22. Insertar contacto en Android con ContactsContract
- 23. Android - Actualizar un contacto
- 24. existe contacto en los contactos
- 25. cómo crear contacto en google?
- 26. Recuperar un contacto en Outlook
- 27. Detectar contacto en la subvista
- 28. Formulario de contacto 7: ¿Hay un tipo de entrada 'Confirmar correo electrónico'?
- 29. ¿Qué tan seguro puede ser un formulario de contacto HTML impulsado por PHP usando Swiftmailer?
- 30. Usando jQuery Fancybox o Lightbox para mostrar un formulario de contacto
¡Gran respuesta, Sean! – Slavo
Gracias Sean! Muy útil :-) –
No hay problema, creo que tienes que marcar la mía como la respuesta, siempre y cuando creas que fue correcta;) –