首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

发邮件的例子

2012-03-13 
求一个发邮件的例子下面是网友的一个例子,我测试了,结果是服务器能连上,发送邮件列表失败。C/C++ code2010

求一个发邮件的例子
下面是网友的一个例子,我测试了,结果是服务器能连上,发送邮件列表失败。

C/C++ code
2010自带的 IdSmtp 控件发邮件, 英文正常。 中文报 RangeCheck error ,据说是idsmtp的问题。不知道2011的 有没有问题。。 。 哪位大侠用过啊 。代码也贴出来吧。 谁有2011和2010的 可以试试,对比下, 呵呵。(DM是个Data Module,上面放了一个IdSMTP和IdMessage控件)  DM->IdSMTP1->Host = "smtp.163.com";  DM->IdSMTP1->Port = 25;  DM->IdSMTP1->IOHandler = DM->m_IdSSLIOHandlerSocketOpenSSL;  DM->IdSMTP1->UseTLS = utNoTLSSupport;  DM->IdSMTP1->Username = L"name@163.com";  DM->IdSMTP1->Password = L"passwd" ;  DM->IdSMTP1->AuthType = satDefault;  DM->IdSMTP1->Authenticate();  DM->IdMessage1->ContentType = "text/html";  DM->IdMessage1->Subject = "TEST"; // 邮件标题,只要是汉字, 就会报错 RangeCheck error,英没问题. C++ BUILDER 2010自带的indy  DM->IdMessage1->ReceiptRecipient->Address = L"xxxxx@163.com";  if (!DM->IdSMTP1->Connected()) {  try {  DM->IdSMTP1->Connect();  }catch(...){  Application->MessageBox(L"连接邮件服务器失败!", L"提示", MB_OK + MB_ICONINFORMATION);  return;  }  }  if (DM->IdSMTP1->Connected()) {  try{  DM->IdSMTP1->Send(DM->IdMessage1);  }catch(...){  Application->MessageBox(L"发送邮件失败!", L"提示", MB_OK + MB_ICONWARNING);  return;  }  }  Application->MessageBox(L"邮件发送成功!", L"提示", MB_OK + MB_ICONINFORMATION);


[解决办法]
C/C++ code
void __fastcall TForm1::Button1Click(TObject *Sender){ IdSMTP1->Username ="zz";  IdSMTP1->Password ="****";  IdSMTP1->Host ="smtp.163.com";  IdSMTP1->Port =25;  IdMessage1->Body->Clear();  IdMessage1->Subject="测试";  IdMessage1->Body->Text ="This is a text!!!";  IdMessage1->From->Text="zzbinfo@163.com";  IdMessage1->Recipients->EMailAddresses="*****@qq.com";  try{  IdSMTP1->Connect();  IdSMTP1->Authenticate();  IdSMTP1->Send(IdMessage1);  }  catch(...)  {  ShowMessage("發送失敗!");  return;  } ShowMessage("發送成功!");}//----------- 

热点排行