参考博客:https://www.cnblogs.com/cttcarrotsgarden/p/10154139.html

文章目录

    • 1.Telnet配置
    • 2.设置QQ邮箱
    • 3.程序实现
    • 4.输出效果
  • 关于问题的统一回复:

1.Telnet配置

参考 百度经验 telnet配置和telnet用法
选中Telnet服务器 ,Telnet客户端

2.设置QQ邮箱

1.在设置->账号中启动POP3/SMTP服务和IMAP/SMTP服务
2.获取授权码,用于在第三方客户端登录邮箱(在这里第三方客户端即等会的c程序)

3.程序实现

//参考
//https://www.cnblogs.com/cttcarrotsgarden/p/10154139.html#include <iostream>
#include <string>
#include <WinSock2.h>
#include <stdio.h>
using namespace std;
#pragma comment(lib, "ws2_32.lib") /*链接ws2_32.lib动态链接库*/int main()
{char buff[500]; //收到recv函数返回的结果string message;string info;string subject;WSADATA wsaData;WORD wVersionRequested = MAKEWORD(2, 1);//WSAStarup,即WSA(Windows SocKNDs Asynchronous,Windows套接字异步)的启动命令int err = WSAStartup(wVersionRequested, &wsaData);SOCKET sockClient; //客户端的套接字sockClient = socket(AF_INET, SOCK_STREAM, 0); //建立socket对象HOSTENT* pHostent;//hostent是host entry的缩写,该结构记录主机的信息,包括主机名、别名、地址类型、地址长度和地址列表pHostent = gethostbyname("smtp.qq.com"); //得到有关于域名的信息,链接到qq邮箱服务器SOCKADDR_IN addrServer; //服务端地址addrServer.sin_addr.S_un.S_addr = *((DWORD *)pHostent->h_addr_list[0]); //得到smtp服务器的网络字节序的ip地址addrServer.sin_family = AF_INET;addrServer.sin_port = htons(25); //连接端口25//int connect (SOCKET s , const struct sockaddr FAR *name , int namelen ); //函数原型err = connect(sockClient, (SOCKADDR*)&addrServer, sizeof(SOCKADDR)); //向服务器发送请求buff[recv(sockClient, buff, 500, 0)] = '\0';/*登录邮件服务器*/message = "ehlo qq.com\r\n";send(sockClient, message.c_str(), message.length(), 0); //发送ehlo命令buff[recv(sockClient, buff, 500, 0)] = '\0';   //接收返回值message = "auth login \r\n";send(sockClient, message.c_str(), message.length(), 0);buff[recv(sockClient, buff, 500, 0)] = '\0';/*发送base64加密的用户名、密码*/message = "base64 编码的的qq号码\r\n";send(sockClient, message.c_str(), message.length(), 0);buff[recv(sockClient, buff, 500, 0)] = '\0';message = "base64 编码的授权码\r\n";send(sockClient, message.c_str(), message.length(), 0);buff[recv(sockClient, buff, 500, 0)] = '\0';/*使用 MAIL 命令指定发送者使用 RCPT 命令指定接收者,可以重复使用RCPT指定多个接收者*/string mail;cout << "请输入收件人邮箱:";cin >> mail;message = "MAIL FROM:<填充自己的qq号码@qq.com> \r\nRCPT TO:<";message.append(mail);message.append("> \r\n");send(sockClient, message.c_str(), message.length(), 0);buff[recv(sockClient, buff, 500, 0)] = '\0';buff[recv(sockClient, buff, 500, 0)] = '\0';/*使用 DATA 命令告诉服务器要发送邮件内容*/message = "DATA\r\n";send(sockClient, message.c_str(), message.length(), 0);buff[recv(sockClient, buff, 500, 0)] = '\0';message = "From: 填充自己的qq号码@qq.com\r\n\To: XXX@163.com"+mail+"\r\n\subject:";cout<<"主题:";cin>>subject;message.append(subject);message.append("\r\n\r\n");cout<<"内容:";cin>>info;message.append(info);message.append("\r\n.\r\n");send(sockClient, message.c_str(), message.length(), 0);message = "QUIT\r\n";send(sockClient, message.c_str(), message.length(), 0);buff[recv(sockClient, buff, 500, 0)] = '\0';cout << "发送成功!"<<endl;system("pause");
}

只需修改其中的以下代码即可
message = “base64 编码的的qq号码\r\n”;
message = “base64 编码的授权码\r\n”;
以及后面两处需要填充自己的qq号码

4.输出效果

关于问题的统一回复:

不少同学遇到一些问题…统一回复下,遇到问题请先找找自己的步骤和文中步骤的不同,先用自己的小脑袋瓜和搜索引擎找找解决方案。

遇到问题请检查以下事项:

  • telnet服务端和客户端是否都开启了
  • 邮箱需要开启的服务是否已经开启了
  • 代码中需要base64加密的地方是否加密了

关于telnet服务端,win7设置项有服务端和客户端,win10只能设置项客户端,那咋办?百度和谷歌都是好东西
win10安装telnet服务(附服务端下载链接)

Windows10 telnet 服务端 缺失

我当时是学校机房电脑win7做的课设。
还不行,那我也没辙了。

计算机网络课设-电子邮件客户端程序设计与实现(C/C++语言)相关推荐

  1. 电子邮件客户端程序设计与实现 c++ 计网课设

    电子邮件客户端程序设计与实现 C++实现 telnet功能启用 用telnet发送电子邮件 总结一下这次课设,内附代码. 这次课设尝试过一些别人的代码,一些是不能自定义标题和内容, 有一些更直接,连发 ...

  2. 计算机网络课程设计之电子邮件客户端程序设计与实现

    前言 本实验主要是用smtp协议发邮件,收邮件要用到POP3,时间有限,只实现了发邮件,实现过程放在总体设计中 白嫖容易,创作不易,本文原创,转载请注明!!! 源码和可运行程序: 链接:https:/ ...

  3. 计算机网络——电子邮件客户端程序设计与实现

    计算机网络--电子邮件客户端程序设计与实现 一.实验目的 二.总体设计 1. 基本原理 2. 设计步骤 (1)发送邮件 (2)查看邮件 三.详细设计 1. 程序流程图 (1)发送邮件 (2)查看邮件 ...

  4. 计算机网络课设不会,计算机网络课设讲述.doc

    计算机网络课设讲述 课 程 设 计 任 务 书 题 目 数据通讯与计算机网络 学院(部) 电子与控制工程学院 专 业 建筑设施智能技术 班 级 2011320601 学生姓名 郭跃东 学 号 2011 ...

  5. 计算机网络课设-小型校园网,计算机网络课设 小型校园网

    <计算机网络课设 小型校园网>由会员分享,可在线阅读,更多相关<计算机网络课设 小型校园网(16页珍藏版)>请在人人文库网上搜索. 1.小型网络设计小型校园网的构建1.课程设计 ...

  6. 计算机课程计算奇数,计算机网络课设计算校验和讲解

    <计算机网络课设计算校验和讲解>由会员分享,可在线阅读,更多相关<计算机网络课设计算校验和讲解(31页珍藏版)>请在人人文库网上搜索. 1.沈阳理工大学课程设计专用纸Noi学生 ...

  7. 小型计算机网络拓扑图,计算机网络课设——小型网络设计及实现.doc

    计算机网络课设--小型网络设计及实现 沈阳理工大学计算机网络课程设计报告 PAGE PAGE 0 目录 1.课程设计目的1 2.课程设计要求1 3.boson平台介绍1 4.网络设计3 4.1 静态路 ...

  8. 5、电子邮件客户端程序设计与实现

    一.设计题目 5.电子邮件客户端程序设计与实现 二.设计内容 设计一个电子邮件客户端程序. 三.设计步骤 3.1原理分析 一个电子邮件系统由三部分组成:用户代理.邮件服务器,以及邮件发送协议(如SMT ...

  9. 湖南大学基于SMTP和POP3的邮件系统——计算机网络课设

    基于SMTP和POP3的邮件系统,创新点较多,课设得分很高 这是2022年春季-软件工程19级计算机网络课程设计内容,下方的文档是本项目的需求文档. 本项目的所有代码(安卓端+Web端+服务端)已经完 ...

最新文章

  1. Atitit截屏功能的设计解决方案
  2. 十一资讯 | 字节跳动进军汽车云;Twitch被黑;Facebook宕机;Netfilx收购游戏公司……...
  3. IDEA使用笔记(八)——自动生成 serialVersionUID 的设置
  4. 去大厂也就图一乐,真人上人还得是外包
  5. 【Spring】1、Spring 中的监听器 Listener
  6. eclipse Jsp 自创建tags问题
  7. 2021-06-27 方法的调用
  8. mysql 去重 性能比较_mysql 去重方法distinct 与 group by 性能比较 | 学步园
  9. 图解3GPP规范文档组织结构与编号规则
  10. java代码实现CGCS2000大地坐标系经纬度转换为对应XY值
  11. iFixit 拆解 2014 款 Mac mini拆机教程, 内存确认不能更换.
  12. 人工智能:神经网络与深度学习
  13. SNN识别手写数字—MNIST数据集
  14. 内网安全(四)---横向渗透:PTHPTKPTT
  15. android 人工智能测试,人工智能(AI)测试方法
  16. 【沐风老师】3DMAX实线转虚线插件DashedShape使用教程
  17. 怎么计算机求和错误的,《表格计算求和错误怎么办》 为什么EXCEL公式求和会有错误...
  18. flex 解析 html5,Flex布局详解
  19. TP3.2.3到TP5的变化
  20. 小米电脑重装系统后亮度无法调节的解决办法

热门文章

  1. 卸载3dMax2012流程
  2. 详解OPC协议-工业控制和自动化领域的接口标准
  3. 罗辑思维八里庄沙龙:Cloud Native 的演进(—)--从零开始了解云原生架构
  4. Python网络爬虫爬淘宝无法爬取问题的解决方法
  5. MySQL错误:Can't create table‘..’ (errno:150)解决方案
  6. 各种JSON技术对比(Json-lib,Jackson,Gson,Fastjson)
  7. Xadmin-Xadmin的安装与配置(Django2.0+python3.6)
  8. 叮咚DsV1.0pj版(去授权)
  9. 手机app开发需要哪些技术?
  10. 从安装Eclipse到用Eclipse写第一个Java程序