C# SSL465端口发送邮件方法和问题

3,287次阅读
没有评论

之前写的练习上传到阿里云的时候出现了一个问题,因为发送邮件使用的是默认的 25 端口,but 阿里云禁止了所有服务器的 25 端口,这就导致了邮件不能正常发送,然后我从网上搜索了好几个发送方法都是有各种问题,最后找到了使用 CDO 发送邮件的方法,但是当上传到服务器之后依然有问题。

首先要在项目引用里添加引用 Microsoft CDO For Exchange 2000 Library 引用之后在属性这个引用属性里面点击 嵌入互操作类型 设置成 false,还没完,这时候点击另一个引用 ADODB嵌入互操作类型 设置为 false,否则会报错 找不到文件或程序集名称 「Interop.ADODB」,或找不到它的一个依赖项

 string host = "smtp.163.com";// 邮件服务器 smtp.163.com 表示网易邮箱服务器    
            string userName = "test@163.com";// 发送端账号   
            string password = "test";// 发送端密码(这个客户端重置后的密码)

            CDO.Message oMsg = new CDO.Message();
            Configuration conf = new ConfigurationClass();
            conf.Fields[CdoConfiguration.cdoSendUsingMethod].Value = CdoSendUsing.cdoSendUsingPort;
            conf.Fields[CdoConfiguration.cdoSMTPAuthenticate].Value = CdoProtocolsAuthentication.cdoBasic;
            conf.Fields[CdoConfiguration.cdoSMTPUseSSL].Value = true; // 启用 ssl
            conf.Fields[CdoConfiguration.cdoSMTPServer].Value = host;// 必填,而且要真实可用   
            conf.Fields[CdoConfiguration.cdoSMTPServerPort].Value = 465;//465 特有
            conf.Fields[CdoConfiguration.cdoSendEmailAddress].Value = "<" + userName + ">";
            conf.Fields[CdoConfiguration.cdoSendUserName].Value = userName;// 真实的邮件地址   
            conf.Fields[CdoConfiguration.cdoSendPassword].Value = password;   // 为邮箱密码,必须真实   


            conf.Fields.Update();

            oMsg.Configuration = conf;
            oMsg.HTMLBody = "测试";

            oMsg.Subject = "测试";

            oMsg.From = userName;
            oMsg.To = "uwpgrn54821@chacuo.net";

            try
            {oMsg.Send();
            }
            catch (Exception aa)
            {MessageBox.Show(aa.Message);
            }

正文完
 0
Rioad
版权声明:本站原创文章,由 Rioad 于2019-10-06发表,共计1287字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码