普通邮箱设置客户端授权码并开启stmp服务以及关于QQ邮箱“命令顺序不正确。 服务器响应为:Error: need EHLO and AUTH first !”问题全指导

Zoomla!逐浪CMS带有强大的邮局功能,可以用于发送邮件与进行事务管理。
其中邮局配置大家不太熟悉这里提供一系列教程。

1、首先在QQ邮箱当中开启“POP3/SMTP服务”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wBPVZ3PY-1613786068039)(https://www.z01.com/UploadFiles/Anony/content/md/jFdT2hcIYY.png “在这里插入图片描述”)]

2、获取“授权码”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D9cJSHMU-1613786068043)(https://www.z01.com/UploadFiles/Anony/content/md/5LFZvQaRy3.png “在这里插入图片描述”)]
刚开始一直使用邮箱的密码。后面才发现,原来QQ邮箱通过第三方发送邮件应该使用授权码 o(≧口≦)o

附上腾讯的说明http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28

网易邮箱也是相同的设置:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QqTwt5Vo-1613786068045)(https://www.z01.com/UploadFiles/Anony/content/md/t2oiQEdh4a.jpg “在这里插入图片描述”)]

3、编码

使用SmtpClient来解决

EnableSsl设置为true
UseDefaultCredentials设置为false
Credentials = new System.Net.NetworkCredential(“QQ邮箱”, “授权码”);
附上代码,做个备忘

public static void Send(Email mail,string email)
        {
            SmtpClient client = new SmtpClient("smtp.qq.com");
            client.EnableSsl = true;
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential("QQ邮箱", "授权码");
 
            MailAddress from = new MailAddress("QQ邮箱", "显示名称", Encoding.UTF8);//初始化发件人
 
            MailAddress to = new MailAddress(email, "", Encoding.UTF8);//初始化收件人
 
            //设置邮件内容
            MailMessage message = new MailMessage(from, to);
            message.Body = mail.Body;
            message.BodyEncoding = mail.BodyEncoding;
            message.Subject = mail.Subject;
            message.SubjectEncoding = mail.SubjectEncoding;
            message.IsBodyHtml = mail.IsBodyHtml;
 
            //发送邮件
            try
            {
                client.Send(message);
            }
            catch (InvalidOperationException iex)
            { }
            catch (Exception ex)
            { }
        }

注意:一定要先设置 EnableSsl和UseDefaultCredentials,再实例化Credentials

在C#中,你可以使用`System.Net.Mail`命名空间下的类来实现SMTP邮件发送的功能。即使在没有发送人信息的情况下,你仍然可以发送邮件,但这通常不是推荐的做法,因为它可能会被接收方的垃圾邮件过滤器拦截。 为了在没有发送人的情况下发送邮件,你需要创建一个`MailMessage`对象,并且可以不设置它的`From`属性或者设置一个无效的地址。然而,这种做法可能会导致邮件发送失败,因为大多数SMTP服务器都会对发件人地址进行验证。 下面是一个简单的示例代,展示如何使用C#向指定邮箱发送邮件,但请注意,这段代可能不会在没有正确配置SMTP服务器和发件人信息的情况下工作: ```csharp using System.Net; using System.Net.Mail; public class MailSender { public static void SendEmail(string toAddress, string subject, string body) { // 创建邮件消息对象 MailMessage mail = new MailMessage(); // 设置邮件的接收者 mail.To.Add(toAddress); // 设置邮件的主题 mail.Subject = subject; // 设置邮件的内容 mail.Body = body; // 设置发件人地址(这里可以设置为任意地址,但可能不会被接受) // mail.From = new MailAddress("example@example.com"); // 创建SMTP客户端对象 SmtpClient smtpServer = new SmtpClient("smtp.example.com"); // 设置SMTP客户端的凭据,如果需要的话 smtpServer.Credentials = new NetworkCredential("username", "password"); // 设置SMTP服务器端口,如果有要求 smtpServer.Port = 25; try { // 发送邮件 smtpServer.Send(mail); Console.WriteLine("邮件发送成功!"); } catch (Exception ex) { // 发生错误时输出错误信息 Console.WriteLine("邮件发送失败: " + ex.Message); } } } // 使用示例 MailSender.SendEmail("recipient@example.com", "测试邮件", "这是一封测试邮件。"); ``` 在上述代中,`smtp.example.com`、`username`、`password`、`recipient@example.com`需要替换为实际的SMTP服务器地址、用户名、密和接收者的电子邮件地址。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值