Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    101

    [C#] invio di due email

    Ciao a tutti, probabilmente la domanda è stupida
    ho una form di registrazione composta da due pagine. Nella prima pagina l'utente compila i dati che vengono memorizzati in un db, poi clicca sul bottone e viene reindirizzato in un'altra form. I dati vengono passati mediante session.
    Qua compila altri campi e quando clicca sul bottone di conferma i dati dovrebbero essere spediti via email.
    Gli indirizzi email sono memorizzati in un database. Ma per ora mi limito all'invio dell'email.
    Ecco il codice:


    codice:
    public partial class UserRegistration : PageBaseClass
    {
    	protected void Page_Init(object sender, EventArgs e)
    	{
    
            if (Session["registrazione"] == null)
                Response.Redirect("~/registra.aspx");
    
    		if (!_website.AllowUserSelfRegistration) 
    			Response.Redirect("~/Login.aspx", true);
    
    		createUserWizard.CreatedUser += new EventHandler(createUserWizard_CreatedUser);
    	}
    
    	void createUserWizard_CreatedUser(object sender, EventArgs e)
    	{
    
            string azienda;
            string contatto;
            string indirizzo;
            string cap;
            string citta;
            string telefono; 
    
    		//Send email to user for verifying account
    		MembershipUser user = Membership.GetUser(createUserWizard.UserName);
    		string url = string.Concat("http://", Request.Url.Authority, Response.ApplyAppPathModifier("~/Login.aspx?activate="));
    
    		MailMessage mail = new MailMessage(_website.MailSenderAddress, user.Email);
    		mail.SubjectEncoding = System.Text.Encoding.UTF8;
    		mail.Subject = string.Format(Resources.StringsRes.pge_UserRegistration_ActivationEmailSubject, _website.WebSiteTitle);
    		mail.BodyEncoding = System.Text.Encoding.UTF8;
    		mail.IsBodyHtml = false;
    		mail.Body = string.Format(Resources.StringsRes.pge_UserRegistration_ActivationEmailBody, _website.WebSiteTitle, url, user.ProviderUserKey.ToString());
           
    		SmtpClient client = new SmtpClient(_website.SmtpServer);
    
    		//when Smtp user/password/domain is given, SMTP-Authentication has to be used
    		if (_website.SmtpUser != "" && _website.SmtpPassword != "" && _website.SmtpDomain != "")
    		{
    			client.UseDefaultCredentials = false;
    			client.Credentials = new NetworkCredential(_website.SmtpUser, _website.SmtpPassword, _website.SmtpDomain);
    		}
    
    		client.Send(mail);         
    
            if (Session["azienda"] != null)
            {
                azienda = Session["azienda"].ToString();
            }
            else
            {
                azienda = "";
            }
            if (Session["contatto"] != null)
            {
                 contatto = Session["contatto"].ToString();
            }
            else
            {
                contatto = "";
            }
            if (Session["indirizzo"] != null)
            {
                 indirizzo = Session["indirizzo"].ToString();
            }
            else
            {
                indirizzo = "";
            }
            if (Session["cap"] != null)
            {
                 cap = Session["cap"].ToString();
            }
            else
            {
                cap = "";
            }
            if (Session["citta"] != null)
            {
                 citta = Session["citta"].ToString();
            }
            else
            {
                citta = "";
            }
            if (Session["telefono"] != null)
            {
                 telefono = Session["telefono"].ToString();
            }
            else
            {
                telefono = "";
            }
    
    
            //Send email to user for verifying account
            MailMessage messaggio = new MailMessage();
            messaggio.From = new MailAddress("webmaster@webmaster.it", "webmaster@webmaster.it");
          //  messaggio.To.Add(new MailAddress(dr["mailinterne"].ToString()));
    
            messaggio.To.Add(new MailAddress("atopi@tecno-soft.it"));
    
            messaggio.Subject = "NUOVA RICHIESTA DOWNLOAD";
            messaggio.SubjectEncoding = System.Text.Encoding.UTF8;
    
            messaggio.Body += "
    
    Nome Azienda: " + Server.HtmlEncode(azienda);
            messaggio.Body += "
    Persona da contattare:   " + Server.HtmlEncode(contatto);
            messaggio.Body += "
    Indirizzo:   " + Server.HtmlEncode(indirizzo);
            messaggio.Body += "
    cap:   " + Server.HtmlEncode(cap);
            messaggio.Body += "
    città:   " + Server.HtmlEncode(citta);
            messaggio.Body += "
    telefono:   " + Server.HtmlEncode(telefono);
            messaggio.Body += "
    utente:   " + Server.HtmlEncode(createUserWizard.UserName);
    
            
            messaggio.BodyEncoding = System.Text.Encoding.UTF8;
            messaggio.IsBodyHtml = true;
    
            if (_website.SmtpUser != "" && _website.SmtpPassword != "" && _website.SmtpDomain != "")
            {
                client.UseDefaultCredentials = false;
                client.Credentials = new NetworkCredential(_website.SmtpUser, _website.SmtpPassword, _website.SmtpDomain);
            }
    
            client.Send(messaggio);
    
    
            Session["registrazione"] = null;
    
    	}
    
    	protected void Page_Load(object sender, EventArgs e)
    	{
    		if (!IsPostBack)
    		{
    			(createUserStep.ContentTemplateContainer.FindControl("EmailRegexValidator") as RegularExpressionValidator).ValidationExpression = Validation.EmailRegex;
    		}
    
    	}
    }
    Quando tento di inviare la mail mi dice che c'è già una sessione.
    Come posso fare per chiudere la connessione all'invio della prima mail e aprirne una nuova all'invio della seconda?
    Spero di essere stato chiaro.
    Grazie!!
    Mr Blade
    ----------
    The Art Of Sailing

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Provato ad istanziare un nuovo SmtpClient prima dell'invio della seconda mail ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    101
    ho provato ma mi da lo stesso problema:

    codice:
    SmtpClient client = new SmtpClient(_website.SmtpServer);
    .....
    client.Send(mail);
    ---
    SmtpClient sc = new SmtpClient();
    .....
     sc.Send(messaggio);
    sul sitone microsoft c'è questo articolo ma non ho intenzione di passare a .net 4.

    come potrei uscirne? grazie!
    Mr Blade
    ----------
    The Art Of Sailing

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.