karthikh87 Ответов: 3

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


// Вы можете указать имя хоста или IP-адрес вашего сервера
// По умолчанию в IIS будет localhost \
// smtpClient.Хост = "smtp.google.com";

в настоящее время я использую : smtpClient.Host = " localhost";

я получаю почту на gmail id, но он также получает ошибку как поддельный email id report r узнайте больше, так что если я не хочу получить то, что я должен сделать вместо " local host"


откуда я получаю имя хоста..??
какой ip-адрес я должен дать gmail или хостинг-провайдерам?..?
и почему я получаю эту ошибку "это сообщение, возможно, не было отправлено: test@gmail.com Узнайте больше о фишинге отчетов"..??

Проверьте код ниже:

using System;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Net.Mail;

public partial class _Default : System.Web.UI.Page 
{
    #region  "Send email"
    protected void btnSendmail_Click(object sender, EventArgs e)
    {
        // System.Web.Mail.SmtpMail.SmtpServer is obsolete in 2.0
        // System.Net.Mail.SmtpClient is the alternate class for this in 2.0
        SmtpClient smtpClient = new SmtpClient();
        MailMessage message = new MailMessage();

        try
        {
            MailAddress fromAddress = new MailAddress(txtEmail.Text, txtName.Text);

            // You can specify the host name or ipaddress of your server
            // Default in IIS will be localhost \
            smtpClient.Host = "smtp.gmail.com";
           // smtpClient.Host = "localhost";

            //Default port will be 25
            smtpClient.Port = 25;

            //From address will be given as a MailAddress Object
            message.From = fromAddress;

            // To address collection of MailAddress
            message.To.Add("karthikh87@gmail.com");
            message.Subject = "Feedback";

            // CC and BCC optional
            // MailAddressCollection class is used to send the email to various users
            // You can specify Address as new MailAddress("admin1@yoursite.com")
            message.CC.Add("karthikh87@gmail.com");
            message.CC.Add("karthikh87@gmail.com");

            // You can specify Address directly as string
            message.Bcc.Add(new MailAddress("karthikh87@gmail.com"));
            message.Bcc.Add(new MailAddress("karthikh87@gmail.com"));

            //Body can be Html or text format
            //Specify true if it  is html message
            message.IsBodyHtml = false;

            // Message body content
            message.Body = txtMessage.Text;
         
            // Send SMTP mail
            smtpClient.Send(message);

            lblStatus.Text = "Email successfully sent.";
        }
        catch (Exception ex)
        {
            lblStatus.Text = "Send Email Failed.<br>" + ex.Message;
        }
        Response.Redirect("index.html");
    }
    #endregion

    #region "Reset"
    protected void btnReset_Click(object sender, EventArgs e)
    {
        txtName.Text = "";
        txtMessage.Text = "";
        txtEmail.Text = "";
    }
    #endregion
}

3 Ответов

Рейтинг:
7

Sanjay K. Gupta

Попробовать это
Отправка электронной почты с помощью ASP.net через учетную запись Gmail (учетная запись SMTP-сервера Gmail)[^]

Отсутствует - - - - System. Net. NetworkCredential(from, " Password")


Рейтинг:
26

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Вы должны добавить следующие коды, чтобы отправить письмо как можно проще...

[Пример приведен для учетной записи gmail.
Это означает, что у вас должна быть одна учетная запись gmail, чтобы отправить письмо на любой адрес.]

string pweda = "FromMailPassword"; //(ConfigurationManager.AppSettings["password"]);
        string from = "FromYourmail@gmail.com"; //Replace this with your own correct Gmail Address
        string to = "abc@gef.com"; //Replace this with the Email Address to whom you want to send the mail
        System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
        mail.To.Add(to);
        mail.From = new MailAddress(from);
        mail.Subject = "This is a test mail";
        mail.SubjectEncoding = System.Text.Encoding.UTF8;
        mail.Body = "Test Mail.";
 
        mail.Priority = MailPriority.High;
        SmtpClient client = new SmtpClient();
 
        //Add the Creddentials- use your own email id and password
        client.UseDefaultCredentials = false;
        client.Credentials = new System.Net.NetworkCredential(from, pweda);
        client.Port = 587; // Gmail works on this port
        client.Host = "smtp.gmail.com";
        client.EnableSsl = true; //Gmail works on Server Secured Layer

        try
        {
            client.Send(mail);
            Response.Write("Message Sent...");
        }
        catch (Exception ex)
        {
            Exception ex2 = ex;
            string errorMessage = string.Empty;
            while (ex2 != null)
            {
                errorMessage += ex2.ToString();
                ex2 = ex2.InnerException;
            }
            HttpContext.Current.Response.Write(errorMessage);
        } // end try


Вы можете отправить с любого почтового адреса, если у вас есть какой-либо другой...
Просто замените учетные данные, а также имена портов и хостов, которые вы можете легко получить от google.

Вы можете отправить что угодно, присвоив значение 'mail.Тело".

Добавьте этот код туда, куда вы хотите отправить почту...

Счастливого кодирования........


VICK

Привет, Тадит.. Я попробовал ваш код в приведенной выше ссылке и нашел следующее исключение.
Не могли бы вы мне немного объяснить, пожалуйста.


Системы.Нет.Почте.SmtpException: SMTP-сервер требует защищенного соединения или клиент не прошел проверку подлинности. Ответ сервера был: 5.5.1 требуется аутентификация. Узнайте больше на сайте System.Net.Mail.MailCommand.CheckResponse (SmtpStatusCode statusCode, String response) в System.Net.Mail.MailCommand.Отправить(SmtpConnection Конн, байт[] командной, строки из) в системе.Нет.Почте.SmtpTransport.С sendmail(почтовый адрес отправителя, получателей MailAddressCollection, строки deliveryNotify, SmtpFailedRecipientException&амп; исключение) в системе.Нет.Почте.SmtpClient.Отправить(сообщение получить помощь) в EmailTry.btnEmail_Click(объект отправителя, EventArgs в электронной)

VICK

Разобрался... ошибка была моя.. Проблема с верительными грамотами. :) Спасибо.

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Приятно это знать. Добро пожаловать. :)

Karthik_Mahalingam

Хорошо,
закладка :)

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Спасибо. :)

Member 11959569

В чем ваша ошибка, Мистер Вик, в этом коде?

Рейтинг:
15

Rajesh Anuhya

Смотрите мой ответ здесь
ошибка в asp.net код для отправки электронной почты[^]

Спасибо
--РА


karthikh87

обязательно ли указывать имя пользователя и пароль нашей учетной записи gmail?..?
можем ли мы обойтись без предоставления " smtps.Учетные данные = new NetworkCredential ( "mail@gmail.com", " pwd" ); "

Rajesh Anuhya

Нет, это невозможно, вы должны обеспечить
--РА

karthikh87

вы имеете в виду, что все контактные формы и формы обратной связи на веб-сайте имеют имя пользователя и пароль электронной почты в кодировке..??

Rajesh Anuhya

если вы используете 3-разные почтовые учетные записи для этих форм, демонстративно вы должны иметь, например Support@gmail.com, feedback@gmail.com, contact@gmail.com
--РА