problem z wysłaniem maila ze strony (asp.net)

0

Cześć,

mam problem z wysłaniem maila ze stronki, gdy odpalam aplikację lokalnie wszystko ładnie działa, maile dochodzą. Natomiast gdy próbuję wysłać ze strony umieszczonej na serwerze(Webio) występuje błąd. Oto kod :

protected void BtnWyslij_Click(object sender, EventArgs e)
    {        
        System.Threading.Thread.Sleep(5000);      
        SmtpClient client = new SmtpClient();
        string mail = "[email protected]";    
        MailMessage message = new MailMessage(mail,mail);
        message.IsBodyHtml = true;
        message.Subject = "Wiadomość wysłana za pomocą formularza kontaktowego ze strony www.mojadomena.com";
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        DateTime teraz = DateTime.Now;
        sb.Append("Wiadomość została wysłana: " + teraz + "<br/>");
        sb.Append("Imie i nazwisko nadawcy: " + tbImie.Text + "<br/>");
        sb.Append("E-mail nadawcy: " + TbEmail.Text + "<br/>");
        sb.Append("Telefon kontaktowy: " + TbTelefon.Text + "<br/><br/> <hr/> <br/>");        
        sb.Append("Treść wiadomości: " + TbTresc.Text + "<br/>");
        message.Body = sb.ToString();
        

        try
        {
            System.Threading.Thread.Sleep(5000);
            client.Send(message);
            Label1.Text = "Wiadomość wysłana, dziękujemy !";
        }
        catch (Exception)
        {
            Label1.Text = "Wystąpił błąd, spróbuj ponownie.";
        }

    }

web.config:

 
<system.net>
    <mailSettings>
      <smtp from="MojaStrona">
        <network host="smtp.gmail.com" password="mojeHaslo" userName="[email protected]"/>
      </smtp>
    </mailSettings>
  </system.net>

Dodam jeszcze tylko,że (możliwe że jest to przyczyna problemu)
Do wysyłania wiadomości używam formularza który jest odświeżany za pomocą AJAX'a

ASCX:

 
 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text="" CssClass="lblStatusWiadomosci"></asp:Label>
            <asp:UpdateProgress runat="server" ID="PageUpdateProgress">
                <ProgressTemplate>
                    <asp:Image ID="Image1" ImageUrl="~/lay/roller.gif" runat="server" />
                </ProgressTemplate>
            </asp:UpdateProgress>
            <asp:Button ID="BtnWyslij" runat="server" Text="Wyślij" OnClick="BtnWyslij_Click" 
                ValidationGroup="EmailVal" />                
        </ContentTemplate>
    </asp:UpdatePanel>

Jakieś uwagi ? Pozdrawiam

0

No to co łapiesz w catch powinieneś sobie podejrzeć.
catch (Exception)
{
Label1.Text = "Wystąpił błąd, spróbuj ponownie.";
}
Trzeba się trochę zastanowić co się pisze, bo to powyżej to masakra. Czemu? bo łapiesz każdy exception i wypisujesz że wystąpił błąd. To jak pójść do lekarza i powiedzieć że boli. Albo lepiej lekarz po zbadaniu cię powie, tak jest pana chory.
Jeśli łapiesz wyjątek typu Exception, warto pobrać jego obiekt i wypisać/zalogować chociaż message, żeby dowiedzieć się o powodzie błędu.

catch(Exception ex)
{
Label1.Text = "Wystąpił błąd: " + ex.Message;
}

A jak leci ci jakiś błąd, to najlepiej ustaw pułapkę w catchu (breakpoint) i odpal debuggera i podejrzy co dokładnie tam leci.

0

przeciez pisalem że lokalnie wszystko działa, błąd wystepuje tylko na serwerze , a tam juz chyba nie moge uzywac debuggera nie ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1