"<a href="link">Link</a>"
タグに埋め込まれたURLを含むメールを送信するPythonコードがあります。ハイパーリンクURLにスペースを挿入するGmailとOutlook
GmailまたはOutlook 365のWebメールクライアントからのリンクをクリックすると、両方に空白文字またはURLに '%20'が挿入されているため、壊れたページが表示されます。興味深いことに、それは両方のクライアントと同じ場所で発生するようです。
リンクは木場ダッシュボードリンクなので埋め込みコード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')
eが注入されるので、どんな助けも大いに評価されます。
ウェブメールクライアントから真のURLを隠す方法として、中間URL短縮/リダイレクトを検討することは可能でしょうか?電子メールサービスプロバイダは、追跡の目的ですべての電子メールリンクでこれをデフォルトで実行しています。 – revelt
@reveltそれはオプションですが、それが100%問題を解決するかどうかはわかりません。クライアントが電子メール本文の長さのためにスペースを挿入している可能性があるので、URLリンクが短くても、追加されるHTMLに他の情報があるためスペースが表示されることがあります。 – funseiki
私は100%を確認することはできませんが、私が正しく覚えていれば、電子メールのURLは256文字の制限があります。それはもっと少ないかもしれない。しかし、あなたのURLは切り取られていないので、それは別のケースです。電子メールのスペースに関しては、それは想像上の紙が終了するスペースを追加するWordレンダリングエンジンですが、もう一度%20が追加されたときとは異なります。これは異なっています。 – revelt