system
上松 博志

2018.8.21システム開発 

システムエンジニア

上松 博志

[Gmail] そこはURLにしないでほしい

システムの上松です。

開発で良く作る機能といえば、メールを送る機能があります。
処理完了の連絡、エラーの通知、お知らせ発信等、用途はいくつかあると思いますが、
今回ちょっとおかしな現象があったので備忘録的に記録を残します。

メール本文で、こんな風にURLを貼り付けすることがあると思います。
————————————————–

━━━━━━━━━━━━━━━━━━━
★インフォメーション★
━━━━━━━━━━━━━━━━━━━
記事更新!
Marineroad Information
https://www.marineroad.com/hoge/1
Marineroadの記事
https://www.marineroad.com/hoge/2

————————————————–

普通はメール本文はテンプレート化しておいて、必要部分だけ差し替えして対応するので
プログラム上はこんな状態で本文を持ちます。
————————————————–

━━━━━━━━━━━━━━━━━━━
★インフォメーション★
━━━━━━━━━━━━━━━━━━━
!URLREPLACE!

————————————————–
テンプレート中の「!URLREPLACE!」部分の置換えで更新ページのURLをセットするわけですね。

さて、この置き換え用のURL部分ですが、PHPで組み立てするのであれば、
————————————————–

$URL .= $PAGE_TITLE . PHP_EOL;
$URL .= $PAGE_URL . PHP_EOL;

————————————————–
こういったコードを書くことになると思います。
ページタイトル+改行、ページURL+改行、とセットしているわけですが、こうして作ったメールをGmail上で開くと、URLのリンク範囲がおかしくなります。

————————————————–

━━━━━━━━━━━━━━━━━━━
★インフォメーション★
━━━━━━━━━━━━━━━━━━━
記事更新!
Marineroad Information
https://www.marineroad.com/hoge/1
Marineroadの記事
https://www.marineroad.com/hoge/2

————————————————–
↑1つ目のURLのリンク範囲が、改行後まで含まれてリンクができてしまいます。

どうも、PHP_EOLで改行しても、次が半角英数だとURLの続きと認識されてしまうようです。
ページタイトルの頭に「●」や「・」のような全角文字を付けると、URLの認識が途切れるらしくちゃんと正しい位置までをリンクにしてくれます。

これは、プログラムで作ったメールのみで発生するようなので、Gmailのクライアント側の改行認識がちょっとおかしいのかもしれません。
Gmail以外のメール受信環境だと発生するかは不明なので、URLを含んだ文面のメールを送る場合は少し注意してテストした方がいいかもしれませんね。

それでは。

システム開発サービスはこちら
ページTOPへ