2件 1ページ
タイトル4Dからのメール送信に関して 投稿者 ゲスト 投稿日2020/10/23 投稿時刻23:00:29 チェック 作業時間0

連番

投稿者名

メッセージ

画像01

画像02

投稿日

投稿時刻

作業時間

2 水野 誠 ゲストさんこんばんは。
SMTP_Newの前に「SMTP_SetPrefs」「SMTP_Charset」も追加して試してみてください。
2020/11/17 21:29:05 0
1 ゲスト 4D v17.1のサーバーとクライアントを使用しています。

タイトルにもあるように4Dからメールを送ろうと、マニュアルを参照して以下のプログラムを作成しました

メソッド1:SMTP_ERRCHECK
//以下はSMTP_ERRCHECKメソッドのコードです。
//このメソッドは二つの引数をとります。
//第一引数はコマンド名($Command)で、第二引数は引数に渡されたSMTPコマンドが返すエラー値
//このメソッドからはエラー値が0の場合にFalseが、それ以外
//すなわちSMTPコマンドの実行に成功すれば、エラー値が0なの
//SMTPコマンドの実行に失敗すると返り値がTrueとなるため、その時点でCaseのテストが終了します。

C_TEXT(vErrorMsg)

$Command:=$1
$Error:=$2
$Result:=True

If ($Error#0)
$Result:=False
If (<>SHOWERRORS) //エラーメッセージを表示するかしないか
vErrorMsg:=IT_ErrorText ($Error)
ALERT("ERROR --"+Char(13)+"Command:"+string($Command)+Char(13)+"ErrorCode"+String($Error)+Char(13)+"Description"+string(vErrorMsg))
End if
End if

$0:=$Result


メソッド2:SMTP_MailSend


C_LONGINT($SMTP_ID)
C_BOOLEAN($SentOK;$OK)
$SentOK:=False //すべてのコマンドが実行されたかを検証するフラグ

//メッセージ転送を担当するSMTP
vHost:="smtp.mail.xxx.co.jp"
//送信者のアドレス
vFrom:="xxxx@yahoo.co.jp"
//受信者のアドレス
vTo:="yyyy@gmail.com"
//メール件名
vSubject:="送信テスト成功!"
//メール本文
vMessage:="このメールが受信できれば、SMTPサーバの設定は成功です。"

vAuthUserName:="aaaaa"
vAuthPassword:="bbbb"

Case of
//メモリ上に新しいメッセージのためのスペースを確保し、続くコマンドで使用するための参照を返します。
: (Not(SMTP_ERRCHECK ("SMTP_New";SMTP_New ($SMTP_ID))))

//メッセージ転送を担当するSMTPを指定します。
: (Not(SMTP_ERRCHECK ("SMTP_Host";SMTP_Host ($SMTP_ID;vHost))))

//送信者のアドレス。最低一つのアドレスが必要です。
: (Not(SMTP_ERRCHECK ("SMTP_From";SMTP_From ($SMTP_ID;vFrom))))

//メール件名
: (Not(SMTP_ERRCHECK ("SMTP_Subject";SMTP_Subject ($SMTP_ID;vSubject))))

: (Not(SMTP_ERRCHECK ("SMTP_Auth";SMTP_Auth ($SMTP_ID;vAuthUserName;vAuthPassword;0))))

//受信者のアドレス。最低一つのアドレスが必要です。
: (Not(SMTP_ERRCHECK ("SMTP_To";SMTP_To ($SMTP_ID;vTo))))

//メール本文
: (Not(SMTP_ERRCHECK ("SMTP_Body";SMTP_Body ($SMTP_ID;vMessage))))

//メッセージを送信します。
: (Not(SMTP_ERRCHECK ("SMTP_Send";SMTP_Send ($SMTP_ID))))

Else

$SentOK:=True //メッセージが構築され、メールが送信された

End case

If ($SMTP_ID#0) //メッセージが作成されていたら、削除しなければなりません
//メッセージ作成時に使用したメモリをクリアします。
$OK:=SMTP_ERRCHECK ("SMTP_Clear";SMTP_Clear ($SMTP_ID))
End if

SMTPサーバーはYahooを使用するように設定しています。

上記プログラムを実行するとメールの送受信は問題なく行えるのですが、件名は入っているのですが本文が送られてきません(空白のまま)。
この原因を皆さんにご教示いただきたいです。
よろしくお願いします。
2020/10/23 23:00:29 0

★「新規」ボタンをクリックしてメッセージを投稿してください。
★投稿者の方は投稿者名をクリックしてメッセージを開き修正することができます。