C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: メーラでの改行を行う記述方法


(過去ログ 27 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■12845 / inTopicNo.1)  メーラでの改行を行う記述方法
  
□投稿者/ ryu (1回)-(2008/01/18(Fri) 15:17:34)

分類:[HTML/CSS] 

お世話になっています。ryuです。
何とかならないものかと思い、投稿させていただきました。


環境
Windows XP SP2
OutLook 2003 SP2
SQL Server2005

XHTML
ASP



現在、
A画面で記述した内容を、B画面で呼び出し、
B画面でHTMLより、OutLookを起動させて、A画面で記述した内容を反映させているのですが、


A画面で以下のように記述し、その内容をCookieで【text1】として保持し、
データベースにも保存します。(修正・閲覧ができるため)

********フォーム記述内容*********
テスト
・要素1
・要素2
*********************************


B画面で、Cookieから【text1】をメーラに記述させると、以下のようにつながってしまいました。


********メール記述内容*********
テスト・要素1・要素2
*******************************


これをA画面で記述したとおり反映させたい。
A画面で下記のように記述すれば、できることはわかるのですが、


********フォーム記述内容*********
テスト%0D%0A・要素1%0D%0A・要素2
*********************************

userとしては、やはり使いにくいので何とかしたいのですが、

私のググりかたが甘いせいか、中々対策が見つからないので、ご指導ご鞭撻をお願いします。

引用返信 編集キー/
■12846 / inTopicNo.2)  Re[1]: メーラでの改行を行う記述方法
□投稿者/ 魔界の仮面弁士 (576回)-(2008/01/18(Fri) 15:29:39)
OutLook ではなく、
Outlook ですよ。

No12845 (ryu さん) に返信
> A画面で記述した内容を、B画面で呼び出し、
> B画面でHTMLより、OutLookを起動させて、A画面で記述した内容を反映させているのですが、

その部分の具体的なコードを提示した方が、回答が付きやすいかと。

(Outlook 限定ということは、mailto: 指定ではなさそうですね。オートメーション操作かな?)
引用返信 編集キー/
■12847 / inTopicNo.3)  Re[2]: メーラでの改行を行う記述方法
□投稿者/ ryu (3回)-(2008/01/18(Fri) 15:40:58)
魔界の仮面弁士様

早速の返信ありがとうございます。

> OutLook ではなく、
> Outlook ですよ。

すみません。間違っていました。

>>A画面で記述した内容を、B画面で呼び出し、
>>B画面でHTMLより、OutLookを起動させて、A画面で記述した内容を反映させているのですが、
>
> その部分の具体的なコードを提示した方が、回答が付きやすいかと。
>
> (Outlook 限定ということは、mailto: 指定ではなさそうですね。オートメーション操作かな?)



Outlook 限定というわけではないのですが、userサイドで多く使われていたので、Outlookでテストしています。
動作保障も、IE6とOutlookということになっているので。

具体的なコードを以下に記載させていただきます。

*****************HTMLソース*******************
<form method="POST" enctype="text/plain"
action="mailto:<%= t_address %>?subject=<%= subject %>《<%= project_name %>》<%= today %>_<%= full_name %>&cc=<%= address %>&body=本日の業務報告をいたします。%0D%0A%0D%0A●報告書日付:<%= report_date %>%0D%0A%0D%0A●作業内容/進捗%0D%0A<%= progress %>%0D%0A%0D%0A●作業時間%0D%0A ▼オペレーション:<%= operation_time %>h%0D%0A ▼WTRBL:<%= wtrbl_time %>h%0D%0A ▼ClearQuest:<%= figure1 %>h%0D%0A%0D%0A●起票トラブル%0D%0A ▼トラブル発生件数:<%= troublef %>件%0D%0A ▼トラブル報告%0D%0A<%= trouble %>%0D%0A%0D%0A●明日の予定%0D%0A<%= text3 %>%0D%0A%0D%0A******************************%0D%0A氏名:<%= full_name %>%0D%0Ae-mail:<%= address %>%0D%0A******************************">

<div><input type="submit" value=" 登録した内容をメール送信 "></div>
</form>
*********************************************

ご質問させていただくときに、【text1】に保持と書きましたが、
実際のソースでは、何箇所かにあるのですが、
例えば、

●作業内容/進捗%0D%0A<%= progress %>%0D%0A%0D%0A

の部分がそうです。
<%= progress %>で、内容は取れてきているのですが…

以上、ご指導ご鞭撻のほどよろしくお願いします。
引用返信 編集キー/
■12852 / inTopicNo.4)  Re[3]: メーラでの改行を行う記述方法
□投稿者/ IIJIMAS (64回)-(2008/01/18(Fri) 17:03:56)
No12847 (ryu さん) に返信

<% %>とか<%= %>の中でたとえば

(文字列) & vbCrLf

とすれば文字列に改行を追加できると思いますが…
引用返信 編集キー/
■12853 / inTopicNo.5)  Re[3]: メーラでの改行を行う記述方法
□投稿者/ 魔界の仮面弁士 (577回)-(2008/01/18(Fri) 17:24:43)
2008/01/18(Fri) 17:29:45 編集(投稿者)

No12847 (ryu さん) に返信
> userサイドで多く使われていたので、Outlookでテストしています。
(Outlook Express ではなく)Outlook なのですね。

> 動作保障も、IE6とOutlookということになっているので。
Outlook の方は、バージョンを限定しないのですね?
(そういえば、あと何ヶ月かすると、IE8 beta も登場するようで…)


> 具体的なコードを以下に記載させていただきます。
このままだと、元データに「&」「"」「>」などがあった場合に破綻しそう。


まずは URL のエンコードが必要かと思います。たとえば、Server.URLEncode メソッド。
これを使えば、元の文字列が「作業内容」という文字列ならば
「%8D%EC%8B%C6%93%E0%97e」と出力されます。「作業{改行}内容」の2行なら
「%8D%EC%8B%C6%0D%0A%93%E0%97e」になります。(Shift_JIS の場合)


それから、HTML のエンコードについても注意しておいてください。
というのも、「&」を使う際には
  action="mailto:mail@example.com?subject=xxx&body=yyy"
ではなく、本来は
  action="mailto:mail@example.com?subject=xxx&amp;body=yyy"
とする必要があるでしょうから。
(この目的には Server.HTMLEncode を使えます。今回は出番が無いかも知れませんが。)
引用返信 編集キー/
■12855 / inTopicNo.6)  Re[4]: メーラでの改行を行う記述方法
□投稿者/ ryu (4回)-(2008/01/18(Fri) 17:37:53)
IIJIMAS様

ご回答ありがとうございます。

> <% %>とか<%= %>の中でたとえば
>
> (文字列) & vbCrLf
>
> とすれば文字列に改行を追加できると思いますが…

私の認識なのですが、この方法ですと、
例えば、

progress = "テスト" & vbCrLf "・要素1" & vbCrLf "・要素2"

という感じで書けばできると思いますが、
取得した状態で、以下のようにすでに改行が入っているデータなので、
ご指導いただいた方法ではできないのでは、と考えています。

********progressの中身*********
テスト
・要素1
・要素2
*******************************


ご指導いただいている方法で、可能なのでしょうか?

ご返信をお待ちしています。
引用返信 編集キー/
■12856 / inTopicNo.7)  Re[4]: メーラでの改行を行う記述方法
□投稿者/ ryu (5回)-(2008/01/18(Fri) 17:59:30)
魔界の仮面弁士様

ご返信ありがとうございます。

> ■No12847 (ryu さん) に返信
>>userサイドで多く使われていたので、Outlookでテストしています。
> (Outlook Express ではなく)Outlook なのですね。
>
>>動作保障も、IE6とOutlookということになっているので。
> Outlook の方は、バージョンを限定しないのですね?
> (そういえば、あと何ヶ月かすると、IE8 beta も登場するようで…)
>
>
>>具体的なコードを以下に記載させていただきます。
> このままだと、元データに「&」「"」「>」などがあった場合に破綻しそう。
>
>
> まずは URL のエンコードが必要かと思います。たとえば、Server.URLEncode メソッド。
> これを使えば、元の文字列が「作業内容」という文字列ならば
> 「%8D%EC%8B%C6%93%E0%97e」と出力されます。「作業{改行}内容」の2行なら
> 「%8D%EC%8B%C6%0D%0A%93%E0%97e」になります。(Shift_JIS の場合)
>
>
> それから、HTML のエンコードについても注意しておいてください。
> というのも、「&」を使う際には
>   action="mailto:mail@example.com?subject=xxx&body=yyy"
> ではなく、本来は
>   action="mailto:mail@example.com?subject=xxx&amp;body=yyy"
> とする必要があるでしょうから。
> (この目的には Server.HTMLEncode を使えます。今回は出番が無いかも知れませんが。)


ご指導の内容を元に、書き直してみましたら実現することができました。

progressを

progress_mail = Server.URLEncode(progress)

として、
〜省略〜
&amp;body=
〜省略〜
●作業内容/進捗%0D%0A<%= progress_mail %>%0D%0A%0D%0A
〜省略〜

と記述し直しましたらうまくいきました。


魔界の仮面弁士様
IIJIMAS様

ご指導ご鞭撻ありがとうございました。
またなにかありましたら、ご指導ご鞭撻いただけると幸いです。

最後に、このたびはありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -