c#程序发送邮件——以163邮箱为例

本文以163邮箱为例,介绍了如何使用C#的System.Net.Mail.SmtpClient发送邮件。在测试过程中,可能出现的错误如'不允许使用邮箱名称...'通常与授权码错误有关,解决方案包括检查授权码是否正确、重启SMTP服务或在邮箱后台重置授权码。提供了解决此类问题的方法和完整的邮件发送代码示例。

发送邮件——以163邮箱为例

测试及问题排查

使用系统包:System.Net.Mail SmtpClient工具

测试代码:

public static void SendTest() {
   
   
            MailMessage msg = new MailMessage();
            msg.Subject = "测试";   //标题
            msg.Body = " 测试,测试";    //内容
            msg.From = new MailAddress("发件人地址");
            msg.To.Add("收件人地址");
            SmtpClient client = new SmtpClient();
            client.Host = "smtp.163.com";   //发件方服务器地址
            client.Port = 25;  //发件方端口
            client.UseDefaultCredentials = true;
            NetworkCredential credential = new NetworkCredential("用户名", "授权码");
            client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            client.Credentials = credential;
            client.Send(msg);
        }
参数介绍:
Subject:主题
Body:内容
From:发件人邮箱地址
To:收件人邮箱地址列表
Host:发件人邮箱服务器地址
Port:发件人服务器端口
UseDefaultCredentials:是否使用默认的网络凭证
Credentials:身份认证凭据
new NetworkCredential("hynkoala", "WDTMGFMREVPRBKEE")中的userName为邮箱用户名,不包含@后面部分;password为密码(授权码)

UseDefaultCredentials若设置为true,且后面又设置了Credentials,则仍以实际的Credentials进行认证,如果没设Credentials,则以匿名方式进行认证

以上测试方法应该能够实现邮件的发送。

若出现“不允许使用邮箱名称。 服务器响应为:authentication is required,163 smtp13”错误,可能是授权码错误或者发件邮箱问题,可去邮箱管理后台重启SMTP服务或重置授权码(重启默认重置授权码)。

重启:
在这里插入图片描述
重置授权码:目前好像没有重置功能,只能重启。
在这里插入图片描述

完整工具

using System;
using System.Collections.Generic;</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值