在Windows Mobile 6上通過CEMAPI POOM傳送簡訊

來源:互聯網
上載者:User

在Windows Mobile 6上通過CEMAPI POOM傳送簡訊

在Winodws Mobile上第三方軟體一般是通過
1)調用SmsMessageSend API函數傳送簡訊。
或者通過
2)CreateProcess或者ShellExecuteEx方式,調用命令(不含角括弧)
</windows/tmail.exe -service "SMS" -to "簡訊接收方號碼" -body "簡訊內容">

下面的例子,就是調用Windows Mobile內建的簡訊程式(tmail.exe),編輯一條收件者為10086,簡訊內容為 CXYE,查詢餘額的簡訊。
/windows/tmail.exe -service "SMS" -to "10086" -body "KTIP1000"
最終效果如。
<Place Holder for SMS Send UI>

1)和2)這兩種方法都有各自的優缺點。
第一種方法,簡訊發送成功後在微軟內建的已發送郵件箱(Sent Items)中找不到已經發送的簡訊。發送失敗也沒有提示。當然可以自己硬行構造POOM的簡訊對象來實現這個不足。
第二種方法,就是通過tmail.exe -service "SMS" -to "" -body "" 的方法不能夠自動傳送簡訊,只是停留在編輯完成介面,還需要使用者手動點擊"發送"按鈕,或者通過程式實現。

下面介紹一種方法既能夠讓已發簡訊出現在已發送郵件箱中,也能夠將簡訊編輯完成後自動發送。
這就是通過CEMAPI來傳送簡訊。這個在www.codeproject.com 上05年的一篇文章已經實現了。請原文請參考 http://www.codeproject.com/KB/mobile/SMS_CEMPI.aspx .

我使用和實踐了這段代碼,發現幾個問題。
1)傳送簡訊不成功後,簡訊會到草稿箱,但是點開改簡訊,再次發送時,就無法發送了。
<Place Holder for Screen shot>
此時,簡訊的內容放置到了主題(Subject)上,這和普通使用時候遇到的情況不一樣,簡訊內容應該在本文(Body)中.
2)簡訊發送時候,需要設定一個參數,那就是本機號碼。至於如何獲得本機號碼,是非常麻煩的。
3)此Sample是在EVC下編譯的,而且缺少.rc2檔案。雖然作者已經說明了如何解決。

但是我還是重新改寫了以下,將所有的CComPtr<IMAPISession> 之類的定義改成了WM6上建議的IMAPISession
改正了 SendSMSMessage 函數的HRESULT 類型傳回值 Return S_OK.

但是1)和2)的問題仍舊需要解決。

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/cjwn/archive/2009/02/08/3868466.aspx

 

利用tmail.exe 命令參數來發送郵件

 

由於需要最近學習了一下tmail命令參數相關的東西,要實現在程式中發郵件。

先讓我們來看一下tmail.exe 的命令參數吧。

-service  -to -cc -bcc -body -subject -attach

一一解釋一下:

-service 選擇mail acount 這裡可以是SMS, MMS, ActiveSync or your E-mail Acount

如何擷取mail acount 在程式中看吧。我懶的寫了。

-to 發送郵件給誰,可以多個郵件地址,用“;”分隔。

-cc Copy to sb,同上。

-bcc  Blind copy 同上。

-body 郵件內容。

-subject 郵件主題

-attach 附件,注意,附件要用絕對路徑。

舉個例子吧。

-service /"ActiveSync/" -to /"qqiangsir.163.com/" -body /"E-mail content/" -subject /"test subjet/" -attach /"//My Documents//My Pictures//Heart.gif /

在程式中直接調用tmail.exe 進程就行了。

SHELLEXECUTEINFO   si;
 ZeroMemory(&si, sizeof(si));
 si.cbSize = sizeof(si);
 si.fMask = 0;
 si.hwnd = NULL;
 si.lpVerb = NULL;
 si.lpFile = _T("//windows//tmail.exe");
 si.nShow = SW_SHOWNORMAL;

 CString param;
 param.Format(_T("-service /"ActiveSync/" -to /"qqiangsir.163.com/" -body /"E-mail content/" -subject /"test subjet/" -attach /"//My Documents//My Pictures//Heart.gif /"));
 si.lpParameters = param;

 ShellExecuteEx(&si);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.