文章出處

大家知道,mailto是網頁設計制作中的一個非常實用的html標簽,許多擁有個人網頁的朋友都喜歡在網站的醒目位置處寫上自己的電子郵件地址,這樣網頁瀏覽者一旦用鼠標單擊一下由mailto組成的超級連接后,就能自動打開當前計算機系統中默認的電子郵件客戶端軟件,例如OutLook Express以及Foxmail等。

但是由于各操作系統和郵件客戶端對 mailto 事件連接的處理不一致,所以在實際應用的時候需要注意;

1.基本語法

<a href=mailto:test@163.com>send email</a>

或者  

<form action="mailto:test@163.com">

</form>

參數列表:

to 收信人(多個之間用;分割)
suject 主題
cc 抄送
bcc 暗抄送
body 內容(部分郵件客戶端支持html格式語句)

參數傳遞方式同頁面之間傳遞值一樣,可以使用鏈接字符串,也可以用form

鏈接字符串

<a href="mailto:test@163.com?subject=testtitle&cc=test@126.com&body=this is body">send mail</a>

form方式

復制代碼
代碼如下:

<form name='sendmail' action='mailto:test@163.com'>
<input name='cc' type='text' value='test@hotmail.com'>
<input name='subject' type='text' value='testtitle'>
<input name='body' type='text' value='this is body'>
</form>

2.郵件客戶端區別

上面是mailto的簡單語法應用;但在實際應用中 根據瀏覽器設置的瀏覽器客戶端不同,會有不用效果;

尤其是在body 內容包含html 格式的語句時候,這時候需要注意;

outlook 是對body 的html 語句原樣展示(對body的html 進行 escape 后也是同樣的無效),那么我們在outlook mailto 時候想body 里面的語句換行怎么辦 呢?<br/> 是沒有效果的。。需要用 %0D 字符作為換行符號;

foxmail 是會對body的html 語句展示其html 對應的效果;

當然也可以換另一種方式,實現類型mailto的客戶端發送郵件:

復制代碼
代碼如下:

function SendMail(filePath) {
var path = location.href.substring(0, location.href.lastIndexOf("/")) + filePath;
var outlookApp = new ActiveXObject("Outlook.Application");
var nameSpace = outlookApp.getNameSpace("MAPI");
var mailItem = outlookApp.CreateItem(0);
var mailto = "test@163.com ";
var mailBody= "<HTML><BODY><DIV><FONT color=‘red’>test this is body html</FONT></DIV></BODY></HTML>";
mailItem.Subject = "test title";
mailItem.To = mailto;
mailItem.HTMLBody = mailBody;
if (path != "") {
mailItem.Attachments.Add(path);
}
mailItem.Display(0);
mailItem = null;
nameSpace = null;
outlookApp = null;
}

但是這個有個很大的缺點是:僅僅支持outlook 客戶端,需要對Internet選項進行配置,”對沒有標記為安全的ActiveX控件進行初始化和腳本運行“要啟用。

其中調用mailItem的Attachments.Add是向郵件中添加附件,沒有附件的時候就可以把filePath這個參數刪掉。

如果需要添加抄送對象,可以調用mailItem.Cc,若是需要添加一個暗送對象可以調用mailItem.Bcc方法。
歡迎轉載:http://www.kanwencang.com/bangong/20161116/55433.html

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()