Проблема SMTP при попытке отправить основную форму - PullRequest
0 голосов
/ 08 марта 2012

Прошу прощения за столько кода, но у меня возникла проблема с этой формой. Я попробовал все способы, чтобы настроить его, но я просто не могу заставить его отправить. Все, что нужно сделать, это отправить электронное письмо с телом сообщения, но каждый раз, когда я нажимаю «Отправить», оно просто говорит об ошибке (которая происходит из блока catch).

Это в C # ASP.NET.

Я новичок в разработке и буду признателен за любую помощь. Заранее спасибо!

protected void submitButton_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        string messageBody = "//numerous textboxes, dropdown lists, and checkboxes";

        SmtpClient smtp = new SmtpClient();
        MailMessage message = new MailMessage();
        message.IsBodyHtml = false;

        try
        {
            // Prepare to and from e-mail addresses
            MailAddress fromAddress = new MailAddress("info@kellersflowers.com");                
            MailAddress toAddress = new MailAddress(emailTextBox.Text);

            message.From = fromAddress;
            message.To.Add(toAddress);
            message.Subject = "Contact Form Email";
            message.Body = messageBody;

            // Server details
            smtp.Host = "email.goidp.com";
            // Credentials
            smtp.UseDefaultCredentials = true;
            // Send the email
            smtp.Send(message);                

            // Inform the user
            noticeLabel.Visible = true;
            noticeLabel.Attributes.CssStyle.Add("display", "block");
            //noticeLabel.Text = "E-mail sent";
            noticeLabel.Text = "Thank you, we have received your information and will be in touch soon.";

            // and clear the form
            fullNameTextBox.Text = String.Empty;
            companyTextBox.Text = String.Empty;
                 //many others, this is just to give the idea;

        }
        catch (Exception ex)
        {
            errorLabel.Text = "Error sending e-mail:<br/>\n" + ex.Message;
            Response.Redirect("estimate-error.html?error=1");
            errorLabel.Visible = true;
            errorLabel.Attributes.CssStyle.Add("display", "block");
            errorLabel.Text = "Error sending e-mail:<br/>\n" + ex.Message;
        }
    }
    else
    {
        //errorLabel.Text = "Error sending e-mail. Check required fields<br/>";
        //Response.Redirect("estimate-error.html?error=2");
        errorLabel.Visible = true;
        errorLabel.Attributes.CssStyle.Add("display", "block");
        errorLabel.Text = "Error sending e-mail. Check required fields<br/>";
    }
}

Я новичок в этом сайте, поэтому, если мне нужно будет опубликовать дополнительную информацию, я сделаю это. Спасибо!

1 Ответ

0 голосов
/ 09 марта 2012

Скорее всего, вам понадобится установить некоторые учетные данные для объекта SMTP.

smtp.Credentials = new System.Net.NetworkCredential("info@kellersflowers.com", "PasswordForEmail");

Надеюсь, это поможет!Удачи!

...