首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将System.Web.Mail功能移植到System.Net.Mail

将System.Web.Mail功能移植到System.Net.Mail
EN

Stack Overflow用户
提问于 2009-03-11 00:00:44
回答 2查看 4.1K关注 0票数 3

下面的函数可以完美地工作:

代码语言:javascript
复制
    protected void SendWebMailMessage(string DisplayName, string From, string ReplyTo,
        string To, string Subject, string Body, string Attachments)
    {
        System.Web.Mail.MailMessage msg = new System.Web.Mail.MailMessage();
        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver",
             "smtpout.secureserver.net");
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25);
        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 
             2);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/sendusername", From);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/sendpassword",
             mailpassword);
        msg.To = To;
        msg.From = DisplayName + "<" + From + ">";
        msg.BodyFormat = MailFormat.Html;
        msg.Subject = Subject;
        msg.Body = Body;
        msg.Headers.Add("Reply-To", ReplyTo);
        SmtpMail.SmtpServer = "smtpout.secureserver.net";
        SmtpMail.Send(msg);
    }

然而,我得到了一个构建警告,告诉我System.Web.Mail已经过时,我应该使用System.Net.Mail。因此,我使用了System.Net.Mail,并提出了以下函数来替换我的旧函数:

代码语言:javascript
复制
    protected void SendNetMailMessage(string DisplayName, string From, string ReplyTo, 
        string To, string Subject, string Body, string Attachments)
    {
        MailAddress addrfrom = new MailAddress(From, DisplayName);
        MailAddress addrto = new MailAddress(To);
        MailAddress replytoaddr = new MailAddress(ReplyTo);
        System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
        msg.From = addrfrom;
        msg.To.Add(addrto);
        msg.ReplyTo = replytoaddr;
        msg.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient("smtpout.secureserver.net");
        smtp.Credentials = new NetworkCredential(From, mailpassword);
        smtp.Send(msg);
    }

我没有得到任何异常或错误,但我的消息从来没有通过。谁能告诉我我可能做错了什么?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-11 02:14:21

如果我没记错的话。您正在使用Goddady主机。我也在用它。并且我使用**relay-hosting.secureserver.net**作为SMTP服务器。我不知道。可能是这样的.或者您尚未在控制台中设置中继。

票数 1
EN

Stack Overflow用户

发布于 2009-03-11 02:01:26

我在上面测试了你的代码,它工作得很好。我不得不添加正文和主题属性,但即使没有它们,我仍然收到一封空白电子邮件。我还尝试了提供凭据和不提供凭据,两者都有效。

最初,我没有更改您的主机字符串,并收到了一个异常消息“发送邮件失败”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/632763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档