【问题标题】:Send mail script in asp.net with c#使用 c# 在 asp.net 中发送邮件脚本
【发布时间】:2011-09-29 23:57:13
【问题描述】:

请建议我使用 C# 在 asp.net 中为 send mail 脚本编写代码。我想构建查询表,我想在其中发送我的电子邮件 ID 上的所有信息以及附件、主题和正文。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:
    try
    {
        // Assign a sender, recipient and subject to new mail message
        MailAddress sender =
            new MailAddress("sender@johnnycoder.com", "Sender");
    
        MailAddress recipient =
            new MailAddress("recipient@johnnycoder.com", "Recipient");
    
        MailMessage m = new MailMessage(sender, recipient);
        m.Subject = "Test Message";
    
        // Define the plain text alternate view and add to message
        string plainTextBody =
            "You must use an email client that supports HTML messages";
    
        AlternateView plainTextView =
            AlternateView.CreateAlternateViewFromString(
                plainTextBody, null, MediaTypeNames.Text.Plain);
    
        m.AlternateViews.Add(plainTextView);
    
        // Define the html alternate view with embedded image and
        // add to message. To reference images attached as linked
        // resources from your HTML message body, use "cid:contentID"
        // in the <img> tag...
        string htmlBody =
            "<html><body><h1>Picture</h1><br>" +
            "<img src=\"cid:SampleImage\"></body></html>";
    
        AlternateView htmlView =
            AlternateView.CreateAlternateViewFromString(
                htmlBody, null, MediaTypeNames.Text.Html);
    
        // ...and then define the actual LinkedResource matching the
        // ContentID property as found in the image tag. In this case,
        // the HTML message includes the tag
        // <img src=\"cid:SampleImage\"> and the following
        // LinkedResource.ContentId is set to "SampleImage"
        LinkedResource sampleImage =
            new LinkedResource("sample.jpg",
                MediaTypeNames.Image.Jpeg);
        sampleImage.ContentId = "SampleImage";
    
        htmlView.LinkedResources.Add(sampleImage);
    
        m.AlternateViews.Add(htmlView);
    
        // Finally, configure smtp or alternatively use the
        // system.net mailSettings
        SmtpClient smtp = new SmtpClient
              {
                  Host = "smtp.bigcompany.com",
                  UseDefaultCredentials = false,
                  Credentials =
                      new NetworkCredential("username", "password")
              };
    
        //<system.net>
        //    <mailSettings>
        //        <smtp deliveryMethod="Network">
        //            <network host="smtp.bigcompany.com"
        //              port="25" defaultCredentials="true"/>
        //        </smtp>
        //    </mailSettings>
        //</system.net>
    
        smtp.Send(m);
    }
    catch (ArgumentException)
    {
        throw new
            ArgumentException("Undefined sender and/or recipient.");
    }
    catch (FormatException)
    {
        throw new
            FormatException("Invalid sender and/or recipient.");
    }
    catch (InvalidOperationException)
    {
        throw new
            InvalidOperationException("Undefined SMTP server.");
    }
    catch (SmtpFailedRecipientException)
    {
        throw new SmtpFailedRecipientException(
            "The mail server says that there is no mailbox for recipient");
    }
    catch (SmtpException ex)
    {
        // Invalid hostnames result in a WebException InnerException that
        // provides a more descriptive error, so get the base exception
        Exception inner = ex.GetBaseException();
        throw new SmtpException("Could not send message: " + inner.Message);
    }
    

    【讨论】:

      【解决方案2】:

      这个example 就是这样做的。它应该涵盖您需要的一切。

      example 还展示了如何添加附件,如果您需要这样做的话。

      【讨论】:

        【解决方案3】:

        无耻的塞:

        http://www.SystemNetMail.com

        是的,这是我的网站,但它涵盖了您需要使用 System.Net.Mail 完成的大约 99% 的事情。

        【讨论】:

          猜你喜欢
          • 2013-12-22
          • 2013-03-13
          • 2017-08-13
          • 2012-10-11
          • 2012-11-23
          • 2019-10-05
          • 2012-11-09
          • 1970-01-01
          • 2020-04-15
          相关资源
          最近更新 更多