メール送信について
Re: 返信@yu0627
> ただ、タブがうまく送信されません。どうすればいいでしょうか。
タブの部分は、どの様な状態になっていますか?
Outlook Express などで HTML形式で表示などされてますか?
私の環境では、サンプルコードでタブを送信しても表示されます。
取りあえず、問題の切り分けをしてみてください。
1.受信したデータに問題ないか。
2.メーラの設定など。
タブの部分は、どの様な状態になっていますか?
Outlook Express などで HTML形式で表示などされてますか?
私の環境では、サンプルコードでタブを送信しても表示されます。
取りあえず、問題の切り分けをしてみてください。
1.受信したデータに問題ないか。
2.メーラの設定など。
Re: 返信@yu0627
> > ただ、タブがうまく送信されません。どうすればいいでしょうか。
> タブの部分は、どの様な状態になっていますか?
> Outlook Express などで HTML形式で表示などされてますか?
> 私の環境では、サンプルコードでタブを送信しても表示されます。
> 取りあえず、問題の切り分けをしてみてください。
> 1.受信したデータに問題ないか。
メッセージのソースを見てみると以下のようになっております。(個人情報は全て*で伏せてあります)
Return-Path: <*>
Received: from smtp.*.*.ne.jp (*.*.ne.jp [*.*.*.*])
by * (*.*.*/*.*.*) with ESMTP id *
for <*>; Mon, 11 Jul 2005 08:58:28 +0900
Received: from *.*.ne.jp (*.*.*.ne.jp [*.*.*.*])
by smtp.*.*.ne.jp (Postfix) with SMTP id *
for <*>; Mon, 11 Jul 2005 08:58:28 +0900 (JST)
From: yu0627 <*>
To: yurailadmin <*>
X-Mailer: Test_Mailer
Subject: test_tab
Message-Id: <*>
Date: Mon, 11 Jul 2005 08:58:28 +0900 (JST)
Status:
ウイルスセキュリティ設定情報
○不正侵入を防ぐ
○ネットワーク
○ネットワーク通信設定:ユーザー設定
チェックボックスを全てON
○FTP
双方向
TCP
発信元ポート:範囲-20-21
リモートポート:範囲-20-21
○GoldWing(受信)
受信
UDP
発信元ポート:指定-2302
○GoldWing(送信)
送信
UDP
リモートポート:指定-
実際はタブが入っているはずなのですが、掲示板に書き込むとこのようになります。多分これが問題かもしれませんが。
ソースをコピーしてテキストエディタに貼り付けるとタブはちゃんとあります。
> 2.メーラの設定など。
ほとんど初期の設定に近く、OutlookExpress6.0です。
> タブの部分は、どの様な状態になっていますか?
> Outlook Express などで HTML形式で表示などされてますか?
> 私の環境では、サンプルコードでタブを送信しても表示されます。
> 取りあえず、問題の切り分けをしてみてください。
> 1.受信したデータに問題ないか。
メッセージのソースを見てみると以下のようになっております。(個人情報は全て*で伏せてあります)
Return-Path: <*>
Received: from smtp.*.*.ne.jp (*.*.ne.jp [*.*.*.*])
by * (*.*.*/*.*.*) with ESMTP id *
for <*>; Mon, 11 Jul 2005 08:58:28 +0900
Received: from *.*.ne.jp (*.*.*.ne.jp [*.*.*.*])
by smtp.*.*.ne.jp (Postfix) with SMTP id *
for <*>; Mon, 11 Jul 2005 08:58:28 +0900 (JST)
From: yu0627 <*>
To: yurailadmin <*>
X-Mailer: Test_Mailer
Subject: test_tab
Message-Id: <*>
Date: Mon, 11 Jul 2005 08:58:28 +0900 (JST)
Status:
ウイルスセキュリティ設定情報
○不正侵入を防ぐ
○ネットワーク
○ネットワーク通信設定:ユーザー設定
チェックボックスを全てON
○FTP
双方向
TCP
発信元ポート:範囲-20-21
リモートポート:範囲-20-21
○GoldWing(受信)
受信
UDP
発信元ポート:指定-2302
○GoldWing(送信)
送信
UDP
リモートポート:指定-
実際はタブが入っているはずなのですが、掲示板に書き込むとこのようになります。多分これが問題かもしれませんが。
ソースをコピーしてテキストエディタに貼り付けるとタブはちゃんとあります。
> 2.メーラの設定など。
ほとんど初期の設定に近く、OutlookExpress6.0です。
返信@yu0627
> > ソースをコピーしてテキストエディタに貼り付けるとタブはちゃんとあります。
> > ほとんど初期の設定に近く、OutlookExpress6.0です。
> との事から、私の方でも Outlook Expressを復旧してチェックしてみました。
>
> 恐らく以下の設定変更で解決すると思います。
>
> [ツール(T)] -> [オプション(O)] -> "読み取り" タブの、
> □ メッセージはすべてテキスト形式で読み取る(R)
> にチェックを入れてみてください。
>
> WinXP(SP2) + Outlook Express 6.0
してみたところできました。しかし、逆にHTMLメールが正しく見れません。
どうすればいいでしょうか。
> > ほとんど初期の設定に近く、OutlookExpress6.0です。
> との事から、私の方でも Outlook Expressを復旧してチェックしてみました。
>
> 恐らく以下の設定変更で解決すると思います。
>
> [ツール(T)] -> [オプション(O)] -> "読み取り" タブの、
> □ メッセージはすべてテキスト形式で読み取る(R)
> にチェックを入れてみてください。
>
> WinXP(SP2) + Outlook Express 6.0
してみたところできました。しかし、逆にHTMLメールが正しく見れません。
どうすればいいでしょうか。
Re: 返信@yu0627
> > [ツール(T)] -> [オプション(O)] -> "読み取り" タブの、
> > □ メッセージはすべてテキスト形式で読み取る(R)
> > にチェックを入れてみてください。
> してみたところできました。しかし、逆にHTMLメールが正しく見れません。
> どうすればいいでしょうか。
「逆に」ってことはチェックを入れたのをはずせばHTMLメールが正しく表示されると思うのですが、違うんですかね?
> > □ メッセージはすべてテキスト形式で読み取る(R)
> > にチェックを入れてみてください。
> してみたところできました。しかし、逆にHTMLメールが正しく見れません。
> どうすればいいでしょうか。
「逆に」ってことはチェックを入れたのをはずせばHTMLメールが正しく表示されると思うのですが、違うんですかね?
Re: 返信@yu0627
> 「逆に」ってことはチェックを入れたのをはずせばHTMLメールが正しく表示されると思うのですが、違うんですかね?
はい、そのとおりです。HTML形式で受信するメールもあるためです。
一度一度変えるのは手間がかかります。
TextEditorのプログラムを変えるとできるのでしょうか...。
はい、そのとおりです。HTML形式で受信するメールもあるためです。
一度一度変えるのは手間がかかります。
TextEditorのプログラムを変えるとできるのでしょうか...。
> コード変更前に、以下の事を試してみてください。
>
> 1.Outlook Express でタブ入り文章を、テキスト形式で送信する。
> 2.□ メッセージはすべてテキスト形式で読み取る(R) のチェックを外す。
> 3.送ったメールを受信してみる。
>
> サンプルでは、テキスト形式が送信されてない為、
> Outlook Express は、HTMLをデフォルトとして使用するのかもしれません。
早速やってみました。
そうすると、メーラーへの貼り付けの時点でタブの間隔が狭くなり、それを受信するとそのままでした。
なお、そのソースを見ると以下のようになっていました。
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-2022-jp";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2527
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527
以上です。
>
> 1.Outlook Express でタブ入り文章を、テキスト形式で送信する。
> 2.□ メッセージはすべてテキスト形式で読み取る(R) のチェックを外す。
> 3.送ったメールを受信してみる。
>
> サンプルでは、テキスト形式が送信されてない為、
> Outlook Express は、HTMLをデフォルトとして使用するのかもしれません。
早速やってみました。
そうすると、メーラーへの貼り付けの時点でタブの間隔が狭くなり、それを受信するとそのままでした。
なお、そのソースを見ると以下のようになっていました。
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-2022-jp";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2527
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527
以上です。
以下のサンプルで試してください。
EditBox1 内の文章にタブがあれば空白に変換して更新します。
# メール送信問題は、解決しているので、新たな問題は、
別に質問を起こしたほうが良いかもしれません。
EditBox1 内の文章にタブがあれば空白に変換して更新します。
# メール送信問題は、解決しているので、新たな問題は、
別に質問を起こしたほうが良いかもしれません。
コード: 全て選択
Sub MainWnd_CommandButton1_Click()
Const NUM_TABROWS = 4
Dim i As Long
Dim n As Long
Dim nLen As Long
Dim pszDest As *Byte
Dim pszSrc As *Byte
nLen = GetWindowTextLength( GetDlgItem(hMainWnd, EditBox1) )
If nLen = 0 Then Exit Sub
pszSrc = calloc(nLen + 1)
If pszSrc = NULL Then Exit Sub
If GetWindowText(GetDlgItem(hMainWnd, EditBox1), pszSrc, nLen + 1) = 0 Then Goto *ExitTag
'文章中のタブ数を数える。
While i < nLen
If IsDBCSLeadByte( pszSrc ) Then
i = i + 1
ElseIf pszSrc = 9 Then
n = n + 1
End If
i = i + 1
Wend
If n = 0 Then Exit Sub
pszDest = calloc(nLen + (n * NUM_TABROWS) + 1)
If pszDest = NULL Then Goto *ExitTag
Dim k As Long
'全ての文章データを、1バイトずつ検証してタブなら半角空白に置き換える。
i = 0
While i < nLen
'全角文字(2バイト)の先頭なら、2バイト分をコピー。
If IsDBCSLeadByte( pszSrc ) Then
memcpy(pszDest + k, pszSrc + i, 2)
k = k + 2
i = i + 1
'タブなら、タブの列数分の半角空白をコピー。
ElseIf pszSrc = 9 Then
lstrcpy( pszDest + k, String$(NUM_TABROWS, " ") )
k = k + NUM_TABROWS
'半角文字なら、1バイト分をコピー。
Else
pszDest[k] = pszSrc
k = k + 1
End If
i = i + 1
Wend
SetWindowText(GetDlgItem(hMainWnd, EditBox1), pszDest)
MsgBox 0, Str$(n) + " 個のタブを置き換えました"
*ExitTag
If pszSrc Then free(pszSrc)
If pszDest Then free(pszDest)
End Sub