Sean2299 Ответов: 1

Проблемы при отправке электронной почты с помощью бесплатного SMTP-сервера в ASP.NET


Это то, что говорит ошибка, и строка 26-это то, где она говорит клиент.Отправить сообщение);

в System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response) в System.Net.Mail.MailCommand.Отправить команду(SmtpConnection Конн, байт [], адрес электронной почты сразу, логическое allowUnicode) в системе.Нет.Почте.SmtpTransport.С sendmail(почтовый адрес отправителя, получателей MailAddressCollection, строки deliveryNotify, логическое allowUnicode, SmtpFailedRecipientException&амп; исключение) в системе.Нет.Почте.SmtpClient.Отправить(сообщение MailMessage) в ContactUsForm.send_Click(Object sender, EventArgs e) в d:\10Ap\prototype\ContactUsForm.aspx.cs:line 26.

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

This is the code i'm using

public partial class ContactUsForm : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void send_Click(object sender, EventArgs e)
    {
        try
        {
            MailMessage message = new MailMessage(from.Text, to.Text, subject.Text, body.Text);
            message.IsBodyHtml = true;

            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            client.EnableSsl = true;

            client.Credentials = new System.Net.NetworkCredential("smajwegmail.com", "Password here");

            client.Send(message);

            status.Text = "Mail was send successfully...!";

            from.Text = "";
            to.Text = "";
            subject.Text = "";
            body.Text = "";
        }

        catch (Exception ex)
        {
            status.Text = ex.StackTrace;
        }
    }
}

		    
                    

Dave Kreskowiak

Что это за сообщение об ошибке? То, что вы опубликовали, - это трассировка стека, в которой произошла ошибка.

1 Ответов

Рейтинг:
0

MadMyche

То SmtpFailedRecipientException в значительной степени говорится, что в его текущем состоянии это письмо не может быть доставлено получателю.

Скорее всего, вы получите лучшие результаты, если добавите конкретный улов для этого исключения и просмотрите Message собственность или любая другая InnerException. Вот упрощенная версия; они ключ с "штабелированные" уловы() это что родовое Исключение экс должен быть последним, так как он поймает любое исключение, которое попадет в эту строку

try { /* your code */ }
catch (SmtpFailedRecipientException SX) { status.Text = SX.Message; }
catch (Exception EX) { status.Text = ex.StackTrace; }
Я действительно нахожу ваш код немного отличным от большинства контактных форм; обычно to/from жестко закодированы, чтобы предотвратить использование формы в гнусных целях. Это действительно может быть причиной проблемы, если используемые сетевые учетные данные не имеют разрешения на отправку от имени используемого адреса from. Google довольно жестко следит за соблюдением правил.

Еще одна распространенная проблема при использовании gmail заключается в том, что используемая учетная запись должна иметь Разрешить менее безопасные приложения... установка находится в положении on.