-2

我正在尝试制作一个电子邮件页面部分,我在这个论坛中找到了一篇文章和一个答案,我在下面的代码中使用了它,但它仍然说发送邮件失败,我几乎不知道为什么?我需要帮助来寻找补救措施,为什么我的以下代码无法发送电子邮件。下面是我的代码供您参考。请告知...谢谢。

protected void Button1_Click(object sender, EventArgs e)
{

SmtpClient client = new SmtpClient();

        client.Host = "smtp.live.com"; //Im not sure about this,I just copy it from the article
        client.Port = 4548; //This is my ASP.Net Development Server Port,Im not sure also if this is correct.

        client.Credentials = new System.Net.NetworkCredential(
            @"email_account",
            @"email_password"); //Im not sure about this code if this correct, I just copy it


        client.EnableSsl = true;

        // create message
        MailMessage message = new MailMessage();
        message.From = new MailAddress(TextBox4.Text, "Mackmellow"); //Textbox4 is my email address
        message.To.Add(new MailAddress(TextBox1.Text, "Mackmellow")); // Textbox1 is the email add I want to send
        message.Subject = TextBox2.Text; //Textbox2 is my subject
        message.Body = TextBox3.Text; // Textbox3 is my message
        message.BodyEncoding = System.Text.Encoding.UTF8;
        message.IsBodyHtml = true;

        message.SubjectEncoding = System.Text.Encoding.UTF8;


        // send message
        try
        {
            client.Send(message);


        }
        catch (SmtpException ex)
        {

            Response.Write(ex.Message);
        }
        finally
        {
            // Clean up.
            message.Dispose();
        }

可以请更正我的代码并告诉我我缺少什么吗?提前致谢...

4

3 回答 3

2

对于发送邮件,您不能使用您的开发服务器端口。

您必须使用邮件服务器的 smtp 服务器端口。

对于 smtp.live.com,您应该使用端口 25 或 587

对于下面的此代码,请指定有效的登录详细信息(电子邮件/密码)

  client.Credentials = new System.Net.NetworkCredential(
            @"email_account",
            @"email_password");
于 2013-03-28T18:37:21.933 回答
0

仅提供 G-mail 帐户 ID。然后检查它。我认为SmtpClient不接受任何其他域邮件地址。所以你可以只 gmail输入地址然后检查它。

编辑

请参阅此示例和其他答案。

从 Asp.Net/C# 发送邮件时出错

如何在 asp.net 中将电子邮件发送到任何目的地,例如 yahoo、gmail、hotmail 等 c# 代码

于 2013-03-28T19:41:59.450 回答
-2

试试这个。

SmtpClient SmtpServer = new SmtpClient("smtp.live.com");
    var mail = new MailMessage();
    mail.From = new MailAddress("email@hotmail.com");
    mail.To.Add("ToGmail.com");
    mail.Subject = "Your Sub";
    mail.IsBodyHtml = true;
    string htmlBody;
    htmlBody = "HTML code";
    mail.Body = htmlBody;
    SmtpServer.Port = 587;
    SmtpServer.UseDefaultCredentials = false;
    SmtpServer.Credentials = new System.Net.NetworkCredential("email@hotmail.com", "YourPassword");
    SmtpServer.EnableSsl = true;
    SmtpServer.Send(mail);
于 2013-03-28T18:36:58.687 回答