C# 从webservice发送电子邮件

C# 从webservice发送电子邮件,c#,web-services,email,sendmail,C#,Web Services,Email,Sendmail,我有一种从c#发邮件的方法: 如果我正常调用这个方法,它会工作,但如果我从Web服务调用它,它就会失败 在cathc中,例外情况是: 尝试向邮件服务器发送邮件时,此邮件服务器需要身份验证 非本地电子邮件地址。请检查您的邮件客户端设置或 请与管理员联系以验证域或地址是否正确 已为此服务器定义 当我从Web服务调用它时,我不明白为什么它不工作。错误消息说您的邮件服务器需要身份验证。虽然有很多方法可以实现这一点,但您可以创建一个新的NetworkCredential对象,并将其提供给mailmessa

我有一种从c#发邮件的方法:

如果我正常调用这个方法,它会工作,但如果我从Web服务调用它,它就会失败

在cathc中,例外情况是:

尝试向邮件服务器发送邮件时,此邮件服务器需要身份验证 非本地电子邮件地址。请检查您的邮件客户端设置或 请与管理员联系以验证域或地址是否正确 已为此服务器定义


当我从Web服务调用它时,我不明白为什么它不工作。

错误消息说您的邮件服务器需要身份验证。虽然有很多方法可以实现这一点,但您可以创建一个新的
NetworkCredential
对象,并将其提供给mailmessage命名参数:

public static void SendEmailWebService(string asunto, string body, string to)
{
    try
    { // takes config from web.config
        MailMessage mm = new MailMessage
        {
            From = new MailAddress(@"no-reply@site.com", @"Notificacion"),
            To = { new MailAddress(to) },
            Subject = asunto,
            IsBodyHtml = true,
            Body = body,
            HeadersEncoding = System.Text.Encoding.UTF8,
            SubjectEncoding = System.Text.Encoding.UTF8,
            BodyEncoding = System.Text.Encoding.UTF8,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential("username", "password")
        };
        Smtp.Send(mm);
    }
    catch (Exception ex)
    {
        // Error
    }
}
如果不想将
NetworkCredential
添加到源代码中,也可以从web.config文件进行配置

<system.net>
  <mailSettings>
    <smtp>
      <network host="" port="" userName="" password=""/>
    </smtp>
  </mailSettings>
</system.net> 

错误消息说您的邮件服务器需要身份验证。虽然有很多方法可以实现这一点,但您可以创建一个新的
NetworkCredential
对象,并将其提供给mailmessage命名参数:

public static void SendEmailWebService(string asunto, string body, string to)
{
    try
    { // takes config from web.config
        MailMessage mm = new MailMessage
        {
            From = new MailAddress(@"no-reply@site.com", @"Notificacion"),
            To = { new MailAddress(to) },
            Subject = asunto,
            IsBodyHtml = true,
            Body = body,
            HeadersEncoding = System.Text.Encoding.UTF8,
            SubjectEncoding = System.Text.Encoding.UTF8,
            BodyEncoding = System.Text.Encoding.UTF8,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential("username", "password")
        };
        Smtp.Send(mm);
    }
    catch (Exception ex)
    {
        // Error
    }
}
如果不想将
NetworkCredential
添加到源代码中,也可以从web.config文件进行配置

<system.net>
  <mailSettings>
    <smtp>
      <network host="" port="" userName="" password=""/>
    </smtp>
  </mailSettings>
</system.net> 

错误消息说您的邮件服务器需要身份验证。虽然有很多方法可以实现这一点,但您可以创建一个新的
NetworkCredential
对象,并将其提供给mailmessage命名参数:

public static void SendEmailWebService(string asunto, string body, string to)
{
    try
    { // takes config from web.config
        MailMessage mm = new MailMessage
        {
            From = new MailAddress(@"no-reply@site.com", @"Notificacion"),
            To = { new MailAddress(to) },
            Subject = asunto,
            IsBodyHtml = true,
            Body = body,
            HeadersEncoding = System.Text.Encoding.UTF8,
            SubjectEncoding = System.Text.Encoding.UTF8,
            BodyEncoding = System.Text.Encoding.UTF8,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential("username", "password")
        };
        Smtp.Send(mm);
    }
    catch (Exception ex)
    {
        // Error
    }
}
如果不想将
NetworkCredential
添加到源代码中,也可以从web.config文件进行配置

<system.net>
  <mailSettings>
    <smtp>
      <network host="" port="" userName="" password=""/>
    </smtp>
  </mailSettings>
</system.net> 

错误消息说您的邮件服务器需要身份验证。虽然有很多方法可以实现这一点,但您可以创建一个新的
NetworkCredential
对象,并将其提供给mailmessage命名参数:

public static void SendEmailWebService(string asunto, string body, string to)
{
    try
    { // takes config from web.config
        MailMessage mm = new MailMessage
        {
            From = new MailAddress(@"no-reply@site.com", @"Notificacion"),
            To = { new MailAddress(to) },
            Subject = asunto,
            IsBodyHtml = true,
            Body = body,
            HeadersEncoding = System.Text.Encoding.UTF8,
            SubjectEncoding = System.Text.Encoding.UTF8,
            BodyEncoding = System.Text.Encoding.UTF8,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential("username", "password")
        };
        Smtp.Send(mm);
    }
    catch (Exception ex)
    {
        // Error
    }
}
如果不想将
NetworkCredential
添加到源代码中,也可以从web.config文件进行配置

<system.net>
  <mailSettings>
    <smtp>
      <network host="" port="" userName="" password=""/>
    </smtp>
  </mailSettings>
</system.net> 


引用此链接:引用此链接:引用此链接:引用此链接:正确。无论您使用的是web服务还是winforms应用程序,这都与电子邮件服务的托管方式和身份验证要求有关。您知道,我在webconfig中有设置,但由于某种原因,它停止工作了,我认为它不适用于web服务,谢谢。正确。无论您使用的是web服务还是winforms应用程序,这都与电子邮件服务的托管方式和身份验证要求有关。您知道,我在webconfig中有设置,但由于某种原因,它停止工作了,我认为它不适用于web服务,谢谢。正确。无论您使用的是web服务还是winforms应用程序,这都与电子邮件服务的托管方式和身份验证要求有关。您知道,我在webconfig中有设置,但由于某种原因,它停止工作了,我认为它不适用于web服务,谢谢。正确。无论您使用的是web服务还是winforms应用程序,这都与电子邮件服务的托管方式和身份验证要求有关。您知道,我在webconfig中有设置,但由于某种原因,它停止工作了,我认为它不适用于web服务,谢谢。