| タイトル | 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 |
★「新規」ボタンをクリックしてメッセージを投稿してください。
★投稿者の方は投稿者名をクリックしてメッセージを開き修正することができます。