Member 13688916 Ответов: 1

Не показывает никаких ошибок, но Почта не отправляется


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Net.Mail;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Net;
public partial class forget : System.Web.UI.Page
{
    private object lblMessage;

    protected void Page_Load(object sender, EventArgs e)
    {


    }

    protected void Button1_Click(object sender, EventArgs e)
    {

        try
        {
            DataSet ds = new DataSet();
            String CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
            using (SqlConnection con = new SqlConnection(CS))
            {
                con.Open();
                //SqlCommand cmd = new SqlCommand("SELECT UserName,Password FROM UserInfo Where Email= '" + txtEmail.Text.Trim() + "'", con);
                string Command = "select uname,pwd from register where email = @emailid and  Security_1 = @Security1 and Security_2 = @Security2";
                SqlCommand cmd = new SqlCommand(Command, con);
               
                cmd.Parameters.AddWithValue("@emailid", txt_email.Text.Trim());
                cmd.Parameters.AddWithValue("@Security1", txt_security1.Text);
                cmd.Parameters.AddWithValue("@Security2", txt_security2.Text);
                SqlDataAdapter da = new SqlDataAdapter(cmd);

                da.Fill(ds);
                con.Close();
            }
            if (ds.Tables[0].Rows.Count > 0)
            {
                MailMessage Msg = new MailMessage();
                // Sender e-mail address.
                Msg.From = new MailAddress(txt_email.Text);
                // Recipient e-mail address.
                Msg.To.Add(txt_email.Text);
                Msg.Subject = "Your Password Details";
                Msg.Body = "Hi, <br>Please check your Login Detailss<br><br>Your Username: " + ds.Tables[0].Rows[0]["uname"] + "<br><br>Your Password: " + ds.Tables[0].Rows[0]["pwd"] + "<br><br>";
                Msg.IsBodyHtml = true;
                // your remote SMTP server IP.
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;
                smtp.Credentials = new System.Net.NetworkCredential("tmjagadeesh.95@gmail.com", "password");
                smtp.EnableSsl = true;
                smtp.Send(Msg);
                //Msg = null;
                lbltxt.Text = "Your Password Details Sent to your mail";
                // Clear the textbox valuess
                txt_email.Text= "";
            }
            else
            {
                lbltxt.Text = "The Email you entered not exists.";
            }
        }
        catch(Exception ex)
    {
            Console.WriteLine("{0} Exception caught.", ex);
    }

    }
}


Что я уже пробовал:

я получаю подробную информацию со страницы забыть пароль и нажимаю кнопку отправить почту нужно отправить

Suvendu Shekhar Giri

Вы уверены, что не получаете никакой ошибки?
Пожалуйста, попробуйте еще раз с точкой останова и посмотрите, работает ли кодовый блок "smtp.Send(Msg);" нормально.
Попробуйте добавить следующую строку после исключения msg, то есть консоль.Писать.....

Console.Readline();

Richard MacCutchan

Хорошо сделано хранение паролей в открытом тексте и отправка их пользователю таким же образом. Это должно гарантировать, что в вашу систему попадет много хакеров.

F-ES Sitecore

Это очень часто задаваемый вопрос, google для статей об отправке smtp - почты через gmail, есть много предостережений относительно того, почему это может не работать. Для начала вам нужно настроить свою учетную запись так, чтобы она позволяла отправлять почту программно, и она также может ждать ответа "captcha" от вас.

Не используйте Гамиль для отправки писем используйте SMTP-сервера, предоставленный вашим хостинг компанией\ИСП\.

1 Ответов

Рейтинг:
2

RDBurmon

попробуй вот это -
работаешь на меня

using System.Net.Mail;
using System.Text;

...

// Command line argument must the the SMTP host.
SmtpClient client = new SmtpClient();
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("user@gmail.com","password");

MailMessage mm = new MailMessage("mymail@domain.com", "sender@domain.com", "test", "test");
mm.BodyEncoding = UTF8Encoding.UTF8;
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

client.Send(mm);


Member 13688916

ya мой код работает fyn seeting нужно изменить в gmail.account,спасибо вам

RDBurmon

отлично, если это сработало, то примите и проголосуйте за ответ