1. 程式人生 > >【原】移動web頁面給使用者傳送郵件的方法 (郵件含文字、圖片、連結)

【原】移動web頁面給使用者傳送郵件的方法 (郵件含文字、圖片、連結)

微信商戶通有這麼一個需求,使用者開啟H5頁面後,引導使用者到電腦下載設計資源包,由於各種內部原因,被告知無後臺資源支援,自己折騰了一段時間找了下面2個辦法,簡單做下筆記。

mailto使用方法

1、基礎寫法

當瀏覽者點選這個連結時,瀏覽器會自動呼叫預設的客戶端電子郵件程式,並在收件人框中自動填上收件人的地址下面

<a href="mailto:[email protected]">單擊這裡給peun發電子郵件</a>

2、在收件人地址後用?cc=開頭,填寫抄送地址(android存在相容問題)

<a href="mailto:
[email protected]
[email protected]"
>單擊這裡給peun發電子郵件</a>

3、緊跟著抄送地址之後,寫上&bcc=,填上密件抄送地址(android存在相容問題)

<a href="mailto:[email protected][email protected]&[email protected]">單擊這裡給peun發電子郵件</a>

注意:在新增這些功能時,第一個功能以"?"開頭,後面的以"&"開頭

4、包含多個收件人、抄送、密件抄送人,用分號隔

(;)開多個收件人的地址即可實現

<a href="mailto:[email protected];[email protected]">單擊這裡給peun發電子郵件</a>

5、包含主題,用?subject=可以填上主題

<a href="mailto:[email protected]?subject=【邀請函】">單擊這裡給peun發電子郵件</a>

6、包含內容,用?body=可以填上內容

內容包含文字,使用%0A給文字換行

<a href="mailto:[email protected]
?body=邀請您參加騰訊onepiece分享%0A%0A期待您的到來%0A%0Apeunzhang"
>單擊這裡給peun發電子郵件</a>

內容包含連結,含http(s)://等的文字自動轉化為連結

<a href="mailto:[email protected]?body=http://www.cnblogs.com/PeunZhang/">單擊這裡給peun發電子郵件</a>

內容包含圖片,PC端不支援

<a href="mailto:[email protected]?body=<img src='http://images.cnblogs.com/cnblogs_com/PeunZhang/286351/o_peunzhang_cnblogs_code.png' width='200' height='200'>">單擊這裡給peun發電子郵件</a>

8、完整示例,如果mailto後面同時有多個引數的話,第一個引數必須以“?”開頭,後面的每一個都以“&”開頭

<a href="mailto:[email protected];[email protected];[email protected][email protected];[email protected]&[email protected]&subject=【邀請函】&body=邀請您參加騰訊onepiece分享">單擊這裡給peun發電子郵件</a>

知道基本的用法後,回到微信商戶通的需求點,有了以下的介面:

傳送成功後,在QQ郵箱開啟的介面:

體驗二維碼:

重點程式碼展示:

HTML

<a href="javascript:;" class="btn btn-green form-btn" id="sendBtn">開啟郵箱</a>

javascript

var txt = "?subject=[微信支付停車場行業資源包v1.0]&body=停車場行業 - 微信支付行業設計方案資源包v1.0%0A%0A"
            + "http://action.weixin.qq.com/payact/readtemplate?t=/mobile/merchant/project/parking/download_tmpl%0A%0A"
            + "裡面含有:%0A%0A1.停車場行業方案設計模版.ai%0A2.停車場前端頁面開發檔案.html%0A%0A"
            + "您可以用原始檔直接編輯後印刷或開發。%0A%0A"
            + "資源包如果有最新版本會第一時間更新。歡迎繼續關注微信支付行業設計方案,或者分享給您的商業夥伴。%0A%0A"
            + "微信支付行業設計方案:%0A%0A"
            + "<img src='http://ol.weixin.qq.com/public/demo/parking/parking_discount/img/code.png' width='200' height='200'>";

var sendBtn = document.getElementById("sendBtn"),
    sendName = document.getElementById("sendName");
sendBtn.addEventListener("click",function(e){
        sendNameVal = document.getElementById("sendName").value;
        if (filter.test(sendNameVal) == false) {
            e.preventDefault();
            removeClass(info,"hide")
        }
        else 
        if(filter.test(sendNameVal) == true){
            sendBtn.setAttribute("href","mailto:" + sendNameVal + txt);
        }
    })

缺點

  1. 部分使用者開啟郵箱後不知道是自己給自己傳送郵件
  2. 部分使用者沒有手機郵箱賬戶,點選開啟郵件後不會設定,放棄下載
  3. 郵件成功後,被部分客戶端當做垃圾郵件處理,使用者找不到郵件

於是在此缺點的上補充了手機自帶的複製功能,保證使用者可以拿到下載連結,完善後下載量也提升了~

長按a標籤彈出系統預設選單,點複製(拷貝),保證使用者有辦法可以拿到下載連結:

重點程式碼展示:

HTML

<a href="http://action.weixin.qq.com/payact/readtemplate?t=mobile/merchant/project/parking/download_tmpl" target="_blank" class="copy">http://action.weixin.qq.com/payact/readtemplate?t=mobile/merchant/project/parking/download_tmpl</a>

css

 .copy{-webkit-touch-callout: default;}

javascript

//檢測平臺,PC端可點選a,移動端禁止a 
    function mobilePreventA(e){
        var system = { 
            win: false, 
            mac: false, 
            xll: false, 
            ipad:false 
        }; 
        var p = navigator.platform; 
        system.win = p.indexOf("Win") == 0; 
        system.mac = p.indexOf("Mac") == 0; 
        system.x11 = (p == "X11") || (p.indexOf("Linux") == 0); 
        if (!(system.win || system.mac || system.xll)) { 
             e.preventDefault();
        }
    }   
    var copyBtn = document.querySelector(".copy");
    copyBtn.addEventListener("click",function(e){
        mobilePreventA(e);
    })

缺點

  1. 需要傳送下載連結到PC的微信或者QQ等,操作不方便

呼叫QQ郵件分享功能

重點程式碼展示:

<script type="text/javascript">
(function(){
var p = {
url:location.href,
to:'qqmail',
desc:'', /*預設分享理由(可選)*/
summary:'請開啟http://www.cnblogs.com/PeunZhang/下載',/*摘要(可選)*/
title:'資源下載',/*分享標題(可選)*/
site:'白樹部落格',/*分享來源 如:騰訊網(可選)*/
pics:'ttp://images.cnblogs.com/cnblogs_com/PeunZhang/286351/o_peunzhang_cnblogs_code.png' /*分享圖片的路徑(可選)*/
};
var s = [];
for(var i in p){
s.push(i + '=' + encodeURIComponent(p[i]||''));
}
document.write(["<a target='_blank' ", 'href="http://mail.qq.com/cgi-bin/qm_share?', s.join("&"), '"', ' style="cursor:pointer;text-decoration:none;outline:none"><img src="http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_share_01.png"/></a>'].join(""));
})();

缺點

  1. 移動端並沒有做相容,手機裝置上操作難度大
  2. 沒有設定viewport,頁面內容特別小
  3. 沒有微信登陸授權操作,需要手動輸入QQ賬號

綜合考慮,最終選擇了mailto和a標籤長按複製方法的結合,如果大家有更好的方法請留言!

相關推薦

移動web頁面使用者傳送郵件方法 (郵件文字圖片連結)

微信商戶通有這麼一個需求,使用者開啟H5頁面後,引導使用者到電腦下載設計資源包,由於各種內部原因,被告知無後臺資源支援,自己折騰了一段時間找了下面2個辦法,簡單做下筆記。 mailto使用方法 1、基礎寫法 當瀏覽者點選這個連結時,瀏覽器會自動呼叫預設的客戶端電子郵件程式,並在收件人框中自動填上

移動web頁面使用字型的思考

回想2年前剛開始接觸手機專案,接到PSD稿後,發現視覺設計師們喜歡用微軟雅黑作為中文字型進行設計,於是我寫頁面的時候也定義 font-family 為微軟雅黑,後來發到線上後,細心的產品經理髮現頁面的字型不是微軟雅黑,要求馬上修改,我就驚呆了,還跟產品爭執一番。 後來瞭解到的手機系統 ios、andro

移動web資源整理

2013年初接觸移動端,簡單做下總結,首先了解下移動web帶來的問題 裝置更新換代快——低端機遺留下問題、高階機帶來新挑戰 瀏覽器廠商不統一——相容問題多 網路更復雜——弱網路,頁面開啟慢 低端機效能差——頁面操作卡頓 HTML5新技術多——學習成本不低 未知問題——坑多 面對這些問題,

移動端vue頁面點透事件 - 分析與解決

近期專案遇到了vue頁面事件被帶到下一個頁面的問題,也就是我們常說的點透事件,主要表現在android機器上,花了不少時間折騰,簡單做下總結~   vue頁面之間的切換通過Vue Router的router.push方法 b.vue之前已經訪問過,資料通過vuex管理,從a.vue進入到b

相容.NET WEB頁面瀏覽器相容問題

當遇到很多使用者都還在使用IE 瀏覽器進行工作,需要針對IE瀏覽器進行相應的配置。 一般情況下,可以直接在web.config 裡面配置: <configuration> <system.webServer> <!-- 設定網站伺服器以指定預

SVN中如何專案打基線

    打基線就是給被打基線的東西加一個標識,然後在這些東西已經有了變化形成了新的版本後,還能看到打基線的時候這些東西的原來的樣子,從而可以對其進行追蹤和版本隔離。 在專案管理中,打基線主要是在專案進入另一個階段時把上一階段的東西打個標識,從而也作為下一階段的開始。    

無腦操作:EasyUI Tree實現左鍵只選擇葉子節點右鍵浮動選單實現增刪改

1 // 記錄新增還是修改 2 var flag; 3 // 臨時儲存選中節點資料 4 var tempNode; 5 6 // 頁面載入 7 $(function () { 8 // 選單樹繫結資料 9 $('#deptTree').

解決移動端裝置·橫豎屏時頁面內容字型大小調整的問題

首先判斷是不是橫豎屏導致的問題,所以要程式碼檢驗一下。 window.orientation 物件在手機上才可生效。 <script type="text/javascript"&g

轉載移動端touch事件影響click事件以及在touchmove新增preventDefault導致頁面無法滾動的解決方法

原文地址:連結這兩天自己在寫一個手機網頁,用到了觸屏滑動的特效,就是往右滑動的時候左側隱藏的選單從左邊劃出來。做完之後在手機原生瀏覽器中執行正常,但在QQ和微信中開啟,發現touchmove只會觸發一次,而且touchend也經常不觸發。之後百度了一下這個問題,原因是主要是由

Go語言及Web框架Beego環境無腦搭建

本文涉及軟體均以截至到2013年10月12日的最新版本為準 1、 相關軟體準備: 1) go1.2rc1.windows-386.msi,對應32位windows系統安裝使用 下載地址: 2) go1.2rc1.windows-amd64.msi,對應32位windows系統安裝使用 下載地

Sql Server 2008---安裝時卸載Visual Studio

studio ima ext 一段 image 控制面板 選擇 應用 技術 由於數據庫連接不上,所以卸載數據庫,然後安裝的時候出問題報錯,結果是因為vs, 所以就有了卸載vs這一步。某些圖片借用一下。 1. 打開電腦中的控制面板--程序和功能 2.找到要卸載的軟件,但

Http-用getInputStream()或者getParameterMap()獲得Post請求的數據

數據 clas data ons 找到 clu 類的屬性 瀏覽器 比較 【前言】 最近在寫一個接口,寫好以後想測試,自己寫ajax(Post方法)來調用接口倒是可以用action所在類的屬性的get/set方法獲得數據。但是不只是頁面的ajax會調用這個接口,還有外系統會調

JSP配置錯誤頁面

panel jsp頁面 version cati 調試 view nal dex -type 1,使用JSP方式 如果配置是Jsp時,需要把isErrorPage設置為true, 以及設置 <%@ page language="Java" contentType

shell編寫一個簡單的jmeter自動化壓測腳本

image tac vbo 用戶數 osx dot png das uvc 在公司做壓力測試也挺長時間了,每次測試前環境數據準備都需要話費較長時間,所以一直在考慮能不能將整個過程實現自動化進行,於是就抽空寫了一個自動化腳本,當然這個腳本目前功能十分簡陋,代碼也不完善,很有很

無腦操作:Windows 10 + MySQL 5.5 安裝使用及免安裝使用

界面 圖標 ini文件 字符集設置 exe 可能 mon rem 選擇 本文介紹Windows 10環境下, MySQL 5.5的安裝使用及免安裝使用 資源下載: MySQL安裝文件:http://download.csdn.net/detail/lf19820717/

The Linux Command Line - Redirection

report tee edi each new linux c pattern ext rom ● cat - Concatenate files● sort - Sort lines of text● uniq - Report or omit repeated line

The Linux Command Line - Processes

all task rep shutdown ack port report proc name ps - report a snapshot of current processes top - display tasks job - list active jobs bg

unique/swap不甚清楚

wap .cn nbsp cnblogs images 技術分享 png 分享 .com                                              【原】unique/swap【不甚清楚】

fetch跨域請求附帶cookie(credentials)

allow src ssi ann oct o-c ech .com 頭部 HTTP訪問控制 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 解決跨域的方式有很多種,本文介紹“跨域請

在windows平臺上調試vpcs

進行 源代碼 sta win32 sting cygwin clip 源碼 type 1.下載Cygwin32.2.下載vpcs源代碼.3.解壓vpcs源碼,修改Makefile.cygwin文件 以下兩行CFLAGS=-D$(OSTYPE) -D$(CPUTYPE) -D