我有一些python代碼發送帶有嵌入"<a href="link">Link</a>"
標籤內的URL的電子郵件。Gmail和Outlook向超鏈接URL中注入空格
點擊來自Gmail或Outlook 365網絡郵件客戶端的鏈接會導致破損的頁面,因爲它們都顯示爲在URL中插入空格字符或'%20'。有趣的是,它似乎發生在兩個客戶的同一地點。
鏈接是Kibana儀表板鏈接,因此嵌入Rison代碼。
鏈接應該是以下幾點:
<a href="http://localhost:5601/app/kibana?#/visualize/edit/BetterPie?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-60d,mode:quick,to:now))&_a=(filters:!(('$state':(store:appState),meta:(alias:!n,disabled:!f,index:'animals',key:breed,negate:!f,value:'lion'),query:(match:(breed:(query:lion,type:phrase)))),('$state':(store:appState),meta:(alias:!n,disabled:!f,index:'animals',key:age,negate:!f,value:'2'),query:(match:(age:(query:2,type:phrase)))),('$state':(store:appState),meta:(alias:!n,disabled:!f,index:'animals',key:name,negate:!f,value:'nala'),query:(match:(name:(query:nala,type:phrase))))),linked:!f,query:(query_string:(analyze_wildcard:!t,query:'*')),uiState:(spy:(mode:(fill:!f,name:!n))),vis:(aggs:!((id:'1',params:(),schema:metric,type:count),(id:'2',params:(field:breed,order:desc,orderBy:'1',size:5),schema:segment,type:terms),(id:'3',params:(field:age,order:desc,orderBy:'1',size:5),schema:segment,type:terms),(id:'4',params:(field:name,order:desc,orderBy:'1',size:5),schema:segment,type:terms)),listeners:(),params:(addLegend:!t,addTooltip:!t,isDonut:!f,shareYAxis:!t),title:'BetterPie',type:pie))">Dashboard Link</a>
但無論是「%20」或空間被這裏注入:
query:'*')),%20uiState
我使用Python的smtplib模塊編碼消息併發送電子郵件,通過執行以下操作:
htmlEnc = MIMEText(body, 'html')
不確定爲什麼spac e被注入,所以任何幫助將不勝感激。
是否有可能將中間URL縮短器/重定向視爲隱藏網絡郵件客戶端真實URL的方式?電子郵件服務提供商默認在所有電子郵件鏈接上進行跟蹤。 – revelt
@revelt這是一個選項,但我不確定這是否會100%解決問題。由於電子郵件正文的長度,客戶端可能會插入空格,所以即使url鏈接較短,仍可能會出現空格,因爲正在添加的html中還有其他信息。 – funseiki
我無法確認100%,但如果我沒有記錯,電子郵件中的URL有256個字符的限制。它可能更少。但是由於你的URL沒有被切斷,這是一個不同的情況。關於電子郵件中的空格,它是Word渲染引擎添加虛構紙張會結束的空間,但再次,它是一個不同的,因爲你得到%20添加,這是不同的.. – revelt