MFC发送邮件

MFC发送邮件

void CMailerDlg::OnOK() 
{
UpdateData(TRUE);
//得到服务器地址,不过注意这里最好是IP地址
CString Serv = "HELO " + m_Server + "\r\n";
//发送者的地址
CString From = "MAIL FROM:<" + m_From + ">\r\n";
//收信者地址
CString To = "RCPT TO:<" + m_To + ">\r\n";
//发送邮件的文本内容
CString Text = m_Message + "\r\n\r\n.\r\n";

char *MailMessage[] = 
{
   Serv.GetBuffer(1),
   From.GetBuffer(1),
   To.GetBuffer(1),
   "DATA\r\n",
   Text.GetBuffer(1),
   "QUIT\r\n",
   NULL
};

WSADATA Wsa;

//进行WINSOCK的设置
WSAStartup(0x0101,&Wsa);
SOCKET s = socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr(m_Server);
sin.sin_family = AF_INET;
//注意邮件服务器的侦听端口
sin.sin_port = htons(25);

if(connect(s,(LPSOCKADDR)&sin,sizeof(sin)) == SOCKET_ERROR)
   MessageBox("Error: can't connect to server :(","Error",MB_OK|MB_ICONERROR);


int iLength = 0;
int iEnd = 0;
char sBuff[255] = "";
int iMsg = 0;

//循环发送内容,直到要发送的内容发送完毕
do
{
   iLength = recv(s,(LPSTR)sBuff+iEnd, sizeof(sBuff)-iEnd,0);
   iEnd += iLength;
   sBuff[iEnd] = '\0';
   send(s,(LPSTR)MailMessage[iMsg],strlen(MailMessage[iMsg]),0);
   iMsg++;
}while(MailMessage[iMsg]);

//关闭连接
closesocket(s);
WSACleanup();
}

转载于:https://my.oschina.net/ypimgt/blog/91297

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值