スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    django対symfony 日本語メール送信(その2 django編)

    0
      symfony編からの続きです。

      で、djangoで日本語メールを送信するためにはどうすればいいの?というお話。

      djangoやpythonでのエンコードの扱いは、スクリプトの冒頭にエンコーディングを指定してしまえば、ほとんど意識することはないと思います。少なくとも私は、コードもHTMLも全てUTF8で書くことにしており、それ以外ではあまり意識していません。
      日本語メール送信の必要がなければ。ーー;

      pythonでの日本語事情を考慮に入れた上で、djangoのメール送信について調べてみると…
      django日本語ドキュメント:e-mailの送信に書いてありました。


      django.core.mail で送信される電子メールの文字セットは DEFAULT_CHARSET 設定 の値に設定されます

      ガーーーン!
      デフォルト文字セットを当然UTF8にしてる私が日本語メールを送るにはどうすればいいんじゃー!

      ということで、私が考えた方法をメモ。
      まだ実験してみてないので、後日実験してからマズイようなら修正します。

      ■方法1:setting上のデフォルト文字セットをiso-2022-jpにして、通常のページ出力の際はその度ごとにUTF-8を指定する。
      理論上可能だと思うけど、ビュー書くのが面倒になる予感。

      ■方法2:djangoでメール送信するのを諦める。
      「DB接続して、指定したあて先(例えばuserテーブルのidいくつとか)に指定したメール内容を送る」という単体スクリプトを書く。

      ・一つの処理の流れの中でメール送信をする場合(ユーザ登録など)
      流れ:メール送信前の処理→メール送信用単体スクリプトにリダイレクト→メール送信→メール送信スクリプトからdjango製次のページへ更にリダイレクトで戻る
      難点:ユーザーが読み込みを中止したりブラウザを閉じたりすると中断してしまうかも

      ・バックオフィスから突発的にメール送信(メルマガ配信など)
      流れ:adminサイトからメール送信専用アプリにリンクを貼り、adminがメール送信専用アプリにログインしてからメールを送る
      難点:ログインが2重になるので面倒(特に私以外のadminユーザが配信するとき)

      やるとしたら、私はPHPで書いちゃうと思いますが、他の言語のほうが得意な人はそっちでもいいのでは。一つのWEBアプリを最初から最後までdjangoとpython使ってつくらなくちゃいけないってきまりは無いんだし♪
      現実的にはすぐ実装したければこの手段を使っちゃうかも。


      まだ本家のTicket漁ってないので、どなたか既に提案を出してるかどうかわかりませんが、文字セットを何でもかんでもデフォルト限定じゃなくて、何らかの形でセットできるメソッドなりオプションなりを付けられる形になればdjangoのメール送信機構を使う気になるかなぁ。

      誰か、要望出してます?
      それとも、独自のmailクラスを付加する等で、djangoで日本語メール送信を達成した方、いらっしゃいますか?><

      #海外製フレームワークと日本語メールといえば、もうひとつ問題があって、QuotedPrintableとBase64の問題もあるな…。djangoはその辺どうなってるのか未確認です。引き続き調査が必要?


      なんにせよ、選択肢がたくさんあるのはいいことですね^^
      私が高校〜大学入りたての頃(2000年前後)は、WEBアプリ開発言語といえばPerlCGI全盛の感がありました(文系の大学生が趣味でやってみるレベルの話です)が、今はPerl(cgiだけでなくmod_perl)・PHP(ネイティブ・PEAR・symfony・Ethna・Zend・Cake etc.)/Ruby(Rails)/Python(django/TurboGear etc.)…色々選べます。
      だからこそ、より使い勝手のいいもの、よりパフォーマンスのいいものを追求したりする「手間」「悩み」もあるわけですが^^;;;


      スポンサーサイト

      0

        • 2014.12.23 Tuesday
        • -
        • 13:42
        • -
        • -
        • -
        • -
        • by スポンサードリンク

        コメント
        コメントする








           
        この記事のトラックバックURL
        トラックバック
        Django Snippets: POP3 server backend Blog: django対symfony 日本語メール送信(その2 django編) ここあたりが参考になるのでは? [Python]: Subversionコミット時メール送信 by Python メールを送信。 他に方法知っている方いらっしゃいます? hirkazの日記 亀鶴茄
        • 常山日記
        • 2007/04/27 4:44 PM
        Blog: [Python][勉強][Django] 画面上で条件を変えながら検索したい おっ、進んでます:) django対symfony 日本語メール送信(その2 django編)でこんなのはどうでしょう? http://reviewboard.googlecode.com/svn/trunk/reviewboard/reviews/email.py
        • 常山日記
        • 2007/04/28 3:58 AM

        PR

        calendar

        S M T W T F S
           1234
        567891011
        12131415161718
        19202122232425
        2627282930  
        << November 2017 >>

        twitter

        selected entries

        categories

        archives

        recent comment

        • 結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました
          プログラマー
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          ななうぇぶ
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • WindowsのPCで開発するphperがxhprofを使う方法
          ななうぇぶ
        • WindowsのPCで開発するphperがxhprofを使う方法
          川本
        • [バッドノウハウ]Symfony2で別テーブルの集計項目を一覧に含めたいとき
          よし
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          77web
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          ktz

        recent trackback

        • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
          常山日記
        • django対symfony 日本語メール送信(その1 symfony編)
          CPA-LABテクニカル
        • CodeIgniterでユーザー認証
          されどLAMPな日々
        • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
          常山日記
        • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
          サーバー用語集
        • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
          常山日記
        • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
          mitszoの日記
        • python多次元リストをsort(並べ替え)する方法?
          mitszoの日記
        • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
          Humming Via Kitchen
        • 日本語テキストをtruncate@django(Python全般にも??)
          常山日記

        recommend

        links

        profile

        search this site.

        others

        mobile

        qrcode

        powered

        無料ブログ作成サービス JUGEM