请教MFC网络编程的邮件收发的问题

波波仔86 2012-12-26 09:34:15
我遇到三个问题,第一个连不上服务器:


//添加配置消息
void CMyDlg::OnPeizhi()
{
// TODO: Add your control notification handler code here
set.DoModal(); //调用设置对话框
if(set.m_port>0&&set.m_port<100)
{
if(set.m_serveradd!=" ") //判断ip地址不能为空
{
addr.sin_family=AF_INET; //为地址结构中的成员变量赋值
addr.sin_port=htons(set.m_port); //为端口号赋值
addr.sin_addr.S_un.S_addr=inet_addr(set.m_serveradd.GetBuffer(1));
//将主机字节顺序的ip地址转换为网络字节顺序
s=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); //创建套接字
if(connect(s,(sockaddr*) &addr,sizeof(addr)) ) //如果绑定成功
{
::SendMessage(statu,SB_SETTEXT,0,(long)"SMPT 服务器信息设置成功并已经连接服务器!");
GetDlgItem(IDC_SENDER)->EnableWindow(true);
GetDlgItem(IDC_RECVER)->EnableWindow(true);
GetDlgItem(IDC_SUBJECT)->EnableWindow(true);
GetDlgItem(IDC_SENDMAIL)->EnableWindow(true);
GetDlgItem(IDC_RECVMAIL)->EnableWindow(true);
GetDlgItem(IDC_MAILTEXT)->EnableWindow(true);
GetDlgItem(IDC_SENDER)->SetWindowText(" ");
}
else
{
MessageBox("请检查网络连接并重新配置服务器信息!");
}
/*
//改变按钮的状态
GetDlgItem(IDC_SENDER)->EnableWindow(true);
GetDlgItem(IDC_RECVER)->EnableWindow(true);
GetDlgItem(IDC_SUBJECT)->EnableWindow(true);
GetDlgItem(IDC_SENDMAIL)->EnableWindow(true);
GetDlgItem(IDC_RECVMAIL)->EnableWindow(true);
GetDlgItem(IDC_MAILTEXT)->EnableWindow(true);
GetDlgItem(IDC_SENDER)->SetWindowText(" ");
::SendMessage(statu,SB_SETTEXT,0,(long)"SMTP服务器设置成功并已经连接服务器!");
MessageBox("服务器的地址不能为空!"); //这个地方有问题,当服务器的地址为空的时候,但是输不出来
*/
}
else
{
MessageBox("服务器的地址不能为空!");
}
}
else
{
MessageBox("端口号的范围在(0~100)之间!");
}

//这个地方有错误可能服务器没有启动起来

char buf[4];
recv(s,buf,4,0); //接收响应的数据
if(atoi(buf)==121) //比较响应数据
{
MessageBox("服务器准备就绪!");
}
else
{
MessageBox("服务器启动服务失败!");
}

}
我用我的电脑输入 ping mail.163.com,返回的ip地址是121开头,而书上给的220,我都试过,还是连不上,端口号是25.


第二个问题就,在密码编记框中输入的还是明文不像*********这样,该怎么设置呢??

第三个就是以“enter”键结束输入密码
if(i>3)
{
CString str;

this->GetWindowText(str); //获取编辑框中的内容

// this->SetPasswordChar(*);
//m_pass.SetPassword(*); 密码没有实现隐藏的功能
//m_pass.SetPasswordChar('*');
if(str.Find("\n")) //以回车键输入结束,这个地方错误
{

}

GetDlgItem(IDC_RECV)->EnableWindow(true);

GetDlgItem(IDC_NEXT)->EnableWindow(true);

}
else
{
i+=1;
}
}

但是我一按enter键,对话框就结束了,再按又出来了。
...全文
185 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixiang1983 2012-12-26
  • 打赏
  • 举报
回复
引用 楼主 bobozai86 的回复:
本帖最后由 oyljerry 于 2012-12-26 22:28:20 编辑 第二个问题就,在密码编记框中输入的还是明文不像*********这样,该怎么设置呢??
VC里的EDIT BOX 框属性里有个选项为password,将其勾上,再看你的输入,就变成了××

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧