отправить электронное письмо в asp.net

#c# #asp.net #sendmail

#c# #asp.net #отправка электронной почты

Вопрос:

Между head и body у меня есть :

 <script language="C#" runat="server"> 

private void sendmail(Object sender, EventArgs e)
        {

        try
        {

            MailMessage mailObj = new MailMessage();
            mailObj.From = "no-reply@domain.be";
            mailObj.To = "nick@domain.be";
            mailObj.Subject = "Email via site ";
            mailObj.Body = "Dit is een email verstuurd via ASP.net .";
            //mailObj.BodyFormat = MailFormat.Text;
            SmtpMail.SmtpServer = "smtp.one.com";
            SmtpMail.Send(mailObj);
            Response.Write("Email werd succesvol vestuurd");
        }
        catch (Exception x)
        {
            Response.Write("Email werd niet verstuurd: "   x.Message);
        }
    } 
    </script> 
  

и в моем теле у меня есть

 <form id="Form1" method="post" runat="server"> 
  

Но электронное письмо не отправляется, почему бы и нет??

Комментарии:

1. Вы получаете какую-то ошибку в вашем предложении catch?

2. Вы получаете исключение?

3. Недостаточно информации, чтобы ответить на этот вопрос. Выдает ли это ошибку? Вы проверили учетные данные? Ваш почтовый сервер не работает? Брандмауэр запущен?

4. Сообщение об исключении и трассировка стека, если таковые имеются, пожалуйста.

5. первое: настроили ли ваше приложение для отправки электронной почты? второй: где вы вызываете метод sendmail?

Ответ №1:

Потому что вам нужно запустить метод sendmail. В вашем коде нет ничего, что вызывало бы это.

В вашей разметке могла бы быть кнопка, которая вызывается sendEmail при нажатии на нее.

Например:

 <asp:button id="btnSend" OnClick="sendmail" runat="server" Text="Send" />
  

Кроме того, SmtpMail устарел. Используйте SmtpClient

Комментарии:

1. <asp: идентификатор кнопки =»btnSend» OnClick= «sendmail» runat=»сервер» Text =»Отправить» /> работает;

Ответ №2:

Похоже, что для вашего SMTP-сервера не установлена какая-либо аутентификация.

Возможно, вы захотите вместо этого рассмотреть более новый класс ‘SmtpClient’. Подробности здесь:http://msdn.microsoft.com/en-us/library/swas0fwc.aspx

Ответ №3:

Я практически гарантирую вам, что либо этот smtp-сервер не существует, либо вы не передаете надлежащие учетные данные. Если у вас есть учетная запись GMail, попробуйте использовать следующий код, который будет аутентифицироваться на SMTP-сервере GMail и отправлять почту с его помощью. Как только это заработает, продолжайте работать, пока вы не выполните надлежащую аутентификацию по своему собственному.

 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Timeout = 3000;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.Host = "smtp.gmail.com";
client.Port = 587;

System.Net.NetworkCredential myCreds = new System.Net.NetworkCredential(
     "Your@emailhere.com"
     "YourPasswordHere"
                "");


client.Credentials = myCreds;
client.EnableSsl = true;

client.Send(message);