履歴


1.2

2013/11/25 17:44 に joymate tomida が投稿

■2013.11.26|送信メール 本文中に「.」ドットのみの行がある場合のトラブル。
MailMakerPop+ Send Library Ver.1.2

問題:
メール本文中の本文中に「.」ドットのみの行があった場合、受信側でそれ以降のデータを受信出来ない。
メール本文中の行頭に「.」ドットが合った場合、「.」ドットが削除される。
メール本文中の行頭の「.」ドットは、「..」にする必要があるが、
「.NET Framework 2.0/3.0/3.5/4.0」の環境下では、「.」ドットがエスケープされない。
「.NET Framework 4.5」では、改善されエスケープされる。
この問題は、「.NET FrameworkのAlternateViewクラス」で本文を追加した場合に起こります。
MailMakerPop+は、送信処理に「.NET FrameworkのAlternateViewクラス」を利用しています。
解決策:
・解決策[1]
.NET Framework 4.0の場合、行頭の「.」ドットを2つ「..」にする。
iill_SMTP_setBody_Add( "plain" ; Substitute ( simpleExample_send::body_text ; "¶." ; "¶.." ) )
iill_SMTP_setBody_Add( "html" ; Substitute ( simpleExample_send::body_html ; "¶." ; "¶.." ) )
・解決策[2]
送信処理を行うPCを.NET Framework 4.5にする。
この場合、スクリプトの書き換えは、不要です。
・解決策[3]
.NET Framework 4.0|4.5 混在の場合、
iill_SMTP_setBody_Add( "plain" ; Substitute ( simpleExample_send::body_text ; "¶." ; "¶ ." ) )
iill_SMTP_setBody_Add( "html" ; Substitute ( simpleExample_send::body_html ; "¶." ; "¶ ." ) )
※但し、この方法の場合、行頭にドットがあった場合、受信側で「スペース+ドット」になってしまいます。

・行頭にトットを「スペース+ドット」に置換で対応。
ファイル:MMPSLib(.fp7|.fmp12)
スクリプト:lib_Set_Body

変更前:
#plain text
変数を設定 [$er; 値:iill_SMTP_setBody_Add( "plain" ; MailSTemp::bodyText )/*plain,html*/]
If [$er ≠ 0]
フィールド設定 [MMPSLib::gER; MMPSLib::gER & "¶" & $er]
End If
#html
If [ not  IsEmpty ( MailSTemp::bodyHTML )]
変数を設定 [$er; 値:iill_SMTP_setBody_Add( "html" ; MailSTemp::bodyHTML )/*plain,html*/]
End If
If [$er ≠ 0]
フィールド設定 [MMPSLib::gER; MMPSLib::gER & If ( IsEmpty ( MMPSLib::gER ) ; "" ; "¶" ) & Get ( スクリプト名 ) & "|" & $er]
End If

変更後:
#plain text
変数を設定 [$text; 値:Let([Body=MailSTemp::bodyText;Body=¶ & Body;Body=Substitute ( Body ; "¶." ; "¶ ." )];Replace ( Body ; 1 ; 1 ; "" ))]
変数を設定 [$er; 値:iill_SMTP_setBody_Add( "plain" ; $text )/*plain,html*/]
If [$er ≠ 0]
フィールド設定 [MMPSLib::gER; MMPSLib::gER & "¶" & $er]
End If
#html
If [ not  IsEmpty ( MailSTemp::bodyHTML )]
変数を設定 [$html; 値:Let([Body=MailSTemp::bodyHTML;Body=¶ & Body;Body=Substitute ( Body ; "¶." ; "¶ ." )];Replace ( Body ; 1 ; 1 ; "" ))]
変数を設定 [$er; 値:iill_SMTP_setBody_Add( "html" ; $html )/*plain,html*/]
End If
If [$er ≠ 0]
フィールド設定 [MMPSLib::gER; MMPSLib::gER & If ( IsEmpty ( MMPSLib::gER ) ; "" ; "¶" ) & Get ( スクリプト名 ) & "|" & $er]
End If

1.1

2013/11/11 23:03 に joymate tomida が投稿

2013/11/12|MMPSLib Ver.1.1

■MMPSLib::smtp_SSLが空欄の場合、送信エラーとなるため、
 空欄の時に「0」を設定するように修正。
ファイル:MMPSLib.fp7(.fmp12)
スクリプト名:Set_SmtpSetting(account,password,server,port,ssl)
修正前
フィールド設定 [MMPSLib::smtp_SSL; $ssl]
修正後
フィールド設定 [MMPSLib::smtp_SSL; If ( IsEmpty ( $ssl ) or $ssl = 0 ; 0 ; 1 )]



■Ccの処理が出来ていなかったので追加。
ファイル:MMPSLib.fp7(.fmp12)
スクリプト名:lib_Set_Cc
スクリプト名:Send に
スクリプト実行 [「lib_Set_Cc」]
を追加。

1-2 of 2