⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 faxmail2.cpp

📁 自动传真系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
								//	sub="admin@system.mail";
									pMsg->put_To(pFrom);//sub.operator wchar_t *()
									pMsg->put_From(NULL);
									pMsg->putref_Configuration (pConf);
									
									sub="传真发送失败:文件过大或转换失败";
									pMsg->put_Subject(sub.operator wchar_t *());
									pMsg->Send();
						  		//	pMsg->Release();
								//	pMsgs->Delete(iMsg);

									sub=pFrom;
								//	AfxMessageBox(sub.operator const char *());
								}
							}
							else
							{     ////////转换不成,发回通知
									DeleteFile(path1+".bfx");
									BSTR pFrom,pTo;
									pMsg->get_From(&pFrom);
								//	pMsg->get_To(&pTo);
									_bstr_t sub("");							
								//	sub="admin@system.mail";
									pMsg->put_To(pFrom);//sub.operator wchar_t *()
									pMsg->put_From(NULL);
									pMsg->putref_Configuration (pConf);
									
									sub="传真发送失败:文件格式不对,或不能转换成传真";
									pMsg->put_Subject(sub.operator wchar_t *());
									pMsg->Send();
						  		//	pMsg->Release();
								//	pMsgs->Delete(iMsg);
							}
							
							if(!bBFX)
								DeleteFile(path1+xn);  ///删除接收到的附件
						}
						break;//结束提取传真文件
					}
					else    ///附件扩展名称不对
					{
						if(i==iBody-1)  ////最后的附件名称也不对,回信告警
						{
							BSTR pFrom,pTo;
							pMsg->get_From(&pFrom);
						//	pMsg->get_To(&pTo);
							_bstr_t sub("");					
						//	sub="admin@system.mail";
							pMsg->put_To(pFrom);//sub.operator wchar_t *()
							pMsg->put_From(NULL);
							pMsg->putref_Configuration (pConf);
							
							sub="传真发送失败:格式不对";
							pMsg->put_Subject(sub.operator wchar_t *());
							pMsg->Send();
						 // 	pMsg->Release();
						//	pMsgs->Delete(iMsg);

						//	sub=pFrom;
					 	//AfxMessageBox(sub.operator const char *());
								  	
						//	break;
						}						
					}
				} ////测试附件 
							pMsg->Release();
							pMsgs->Delete(iMsg);
			}   /////测试每封来信
		}
		catch(CDBException* e)
		{
		//	AfxMessageBox(e->m_strError);
			e->Delete();
			bDBException=true;
		//	db.Close();
		//	db.Open(m_DSN);
		}
		catch(_com_error e)
		{
			
		}
		catch(...)
		{
	//		pMsgs->Release();
	 //	  	pDropDir->Release();
	//		AfxMessageBox("....");
		}
	}
	return 0;
}
UINT __cdecl MyFaxTX( LPVOID pParam )
{
	CFaxSrvView * pView=(CFaxSrvView*)pParam;
	while(1)
	{
		Sleep(1000);
		/////////读通道信息
		try
		{/////////保正线程不中断
           
		
		}
		catch(CDBException* e)
		{

		}
		catch(...)
		{

		}

	}
	return  0;
}
UINT __cdecl MyFaxNotice( LPVOID pParam )
{
	CFaxSrvView * pView=(CFaxSrvView*)pParam;
	CoInitialize(NULL);

	IDropDirectoryPtr pDropDir;
	IMessagePtr pMsg(__uuidof(Message));//IMessagesPtr pMsgs ;
    IUnknown* pUnk ;
    IEnumVARIANTPtr pEnum ;



	IConfigurationPtr pConf;
	pConf.CreateInstance(L"CDO.Configuration");
	pConf->Load(cdoOutlookExpress,_bstr_t(""));
	FieldsPtr  pf1;	
	pConf->get_Fields(&(pf1));
	FieldPtr pf2;
	pf1->get_Item(_variant_t(cdoSendUsingMethod),&pf2);
	pf2->put_Value(_variant_t((long)cdoSendUsingPort));
	//	 pf1->get_Item(_variant_t(cdoSendUsingMethod),&pf2);
	//	 pf2->get_Value();
	pf1->Update();
/////////////////////////	
	pMsg->putref_Configuration (pConf);  /////完成配置
		
	CDatabase db;
	db.OpenEx(m_DSN);//"DSN=faxdata"UID=sa;PWD=;
	CFaxBill faxBill(&db);
	CFaxRecv faxRecv(&db);
	CFaxError faxError(&db);
	CFaxUser faxUser(&db);


	while(1)
	{
		try
		{  
			Sleep(1000);
		/////////读通道信息
	/*		CoCreateInstance(
				__uuidof(DropDirectory),
				NULL,
				CLSCTX_SERVER,
				__uuidof(IDropDirectory),
				(void**)&pDropDir);
	*/

			/////获取数据库恢复信息,发送邮件用户

			
///////发送传真成功,提示  fax_bill
////	只回复传真文件名还是原文
			faxBill.m_strFilter="notice='no'";
			if(faxBill.IsOpen())
				faxBill.Requery();
			else
				faxBill.Open();

			while(!faxBill.IsEOF())
			{

				faxUser.m_strFilter.Format("userid='%s'",faxBill.m_userid);
				if(faxUser.IsOpen())
					faxUser.Requery();
				else 
					faxUser.Open();

				if(!faxUser.IsEOF())
				{////写Message,send
					_bstr_t to(faxUser.m_usermail);
					pMsg->put_To((wchar_t*)(to));
				//	_bstr_t from("lgy@chinalyp.com");
				//	pMsg->put_From((wchar_t*)(from));

					_bstr_t  sub("传真已发送报告(to:");
					sub+=LPCTSTR(faxBill.m_faxto);
					sub+=")";
					pMsg->put_Subject((wchar_t*)(sub));
				//	pMsg->AddAttachment("http://example.microsoft.com/picture.gif","","");
				//	pMsg->AddAttachment("file://d:/temp/test.doc","","");
					_bstr_t att(faxBill.m_faxdoc);
					IBodyPartPtr  pBody;
			 		pMsg->AddAttachment((wchar_t*)(att),NULL,NULL,&pBody);

					pMsg->Send();
					IBodyPartsPtr pBodys;
					pMsg->get_Attachments(&pBodys);	//pBody->get_BodyParts(&pBodys);
					pBodys->DeleteAll();
					
					faxBill.Edit();
					faxBill.m_notice="已通知";
					faxBill.Update();
					
				}
				else   ///无法回复
				{
					faxBill.Edit();
					faxBill.m_notice="无邮件地址";
					faxBill.Update();

				}
				faxBill.MoveNext();
			}	
///////发送三次失败的,通知用户,并列入失败表  fax_error
////	只回复传真文件名还是原文

			faxError.m_strFilter="notice='no'";
			if(faxError.IsOpen())
				faxError.Requery();
			else
				faxError.Open();

			while(!faxError.IsEOF())
			{

				faxUser.m_strFilter.Format("userid='%s'",faxError.m_userid);
				if(faxUser.IsOpen())
					faxUser.Requery();
				else 
					faxUser.Open();

				if(!faxUser.IsEOF())
				{////写Message,send
					_bstr_t to(faxUser.m_usermail);
					pMsg->put_To((wchar_t*)(to));
			//		_bstr_t from("lgy@chinalyp.com");
			//		pMsg->put_From((wchar_t*)(from));
					_bstr_t  sub("传真发送失败报告(to:");
					sub+=LPCTSTR(faxError.m_faxto);
					sub+=")";
					pMsg->put_Subject((wchar_t*)(sub));
				//	pMsg->AddAttachment("http://example.microsoft.com/picture.gif","","");
				//	pMsg->AddAttachment("file://d:/temp/test.doc","","");
					_bstr_t att(faxError.m_faxdoc);
					IBodyPartPtr  pBody;
			 		pMsg->AddAttachment((wchar_t*)(att),NULL,NULL,&pBody);

					pMsg->Send();
					IBodyPartsPtr pBodys;
					pMsg->get_Attachments(&pBodys);	//pBody->get_BodyParts(&pBodys);
					pBodys->DeleteAll();
					
					faxError.Edit();
					faxError.m_notice="已通知";
					faxError.Update();
					
				}
				else   ///无法回复
				{
					faxError.Edit();
					faxError.m_notice="无邮件地址";
					faxError.Update();

				}
				faxError.MoveNext();
			}	
//////////////////////bak
///////接收传真,传回给用户  fax_recv
			faxRecv.m_strFilter="notice='no'";
			if(faxRecv.IsOpen())
				faxRecv.Requery();
			else
				faxRecv.Open();

			while(!faxRecv.IsEOF())
			{

				faxUser.m_strFilter.Format("userid='%s'",faxRecv.m_userid);
				if(faxUser.IsOpen())
					faxUser.Requery();
				else 
					faxUser.Open();

				if(!faxUser.IsEOF())
				{////写Message,send
					_bstr_t to(faxUser.m_usermail);
					pMsg->put_To((wchar_t*)(to));
					_bstr_t from("lgy@chinalyp.com");
					pMsg->put_From((wchar_t*)(from));
					_bstr_t  sub("传真邮件");
					pMsg->put_Subject((wchar_t*)(sub));
				//	pMsg->AddAttachment("http://example.microsoft.com/picture.gif","","");
				//	pMsg->AddAttachment("file://d:/temp/test.doc","","");
					_bstr_t att(faxRecv.m_faxdoc);
					IBodyPartPtr  pBody;
			 		pMsg->AddAttachment((wchar_t*)(att),NULL,NULL,&pBody);

					pMsg->Send();
					IBodyPartsPtr pBodys;
					pMsg->get_Attachments(&pBodys);	//pBody->get_BodyParts(&pBodys);
					pBodys->DeleteAll();
					
					faxRecv.Edit();
					faxRecv.m_notice="已通知";
					faxRecv.Update();
					
				}
				else   ///无法回复
				{
					faxRecv.Edit();
					faxRecv.m_notice="无邮件地址";
					faxRecv.Update();
				}
				faxRecv.MoveNext();
			}		
		}
		catch(CDBException*e)		
		{

		}
		catch(...)
		{
		}
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -