פורום מחשבים

פורום לענייני מחשבים, תוכנות, אינטרנט, סינונים, שרתים, חומרה, רשתות, תקשורת ועוד.
מנהל הפורום: יעקב ויצמן

מחשבים ותוכנות > תוכן מקצועי

שלום רב!

יש לי קוד באקסס שאני שולחת דרכו מיילים דרך SENDGREAD .
אבל יש לי בעיה לשלוח בעברית, הוא לא קולט ומחזיר שגיאה 400 (השליחה מתבצעת דרך XML) והמייל לא נשלח.
באנגלית השליחה מתבצעת מצוין, כשאני מנסה לשרשר קוד של BYTE (לאחר שביצעתי המרה של UTF8) בתוך השירשור הוא כותב שגיאה.
אם אני ממירה את הBYTE לSTRING הוא רושם לי ?????

אשמח לעזרה


קוד:
Option Compare Database

Public Function sendgread()
Dim reportName As String
Dim path As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oFile As Object
Dim strAttachments As String
Dim strTransPort As String
Dim byteData() As Byte
Dim xmlhttp As Object
Dim eTo As String
Dim eFrom As String
Dim eBody As String
Dim eSubject As String
Dim eToName As String
Dim sReq As String
Dim ePass As String
Dim eUser As String
Dim strXML As String
Dim fePath As String
Dim FileName As String
Dim eBodyFrom As String

eTo = "<לא ניתן לפרסם מיילים באופן פומבי>"
eFrom = "<לא ניתן לפרסם מיילים באופן פומבי>"
eBody = "Send Emails Via The SendGrid API Directly From Access!"
eSubject = "Easy Way To Email From Access"
eToName = "Anthony Griggs"
eUser = "Your_SendGrid_UserName"
ePass = "Your_SendGrid_Password"

' Concatenate file locations of attachments in the following format:
' &files[File_Name.pdf]=File_Path    *** File Path Including File Name ***
strAttachments = "&files[rptOverdueTrainingByEmployee.pdf]=C:\Users\sixHat.HAZDATA\Desktop\IDMS\TempOutput\rptOverdueTrainingByEmployee.pdf&files[rptTrainingSummaryByEmployee.pdf]=C:\Users\sixHat.HAZDATA\Desktop\IDMS\TempOutput\rptTrainingSummaryByEmployee.pdf&files[rptOverallSummary.pdf]=C:\Users\sixHat.HAZDATA\Desktop\IDMS\TempOutput\rptOverallSummary.pdf"

' Call The SendGrid API
sReq = "https://api.sendgrid.com/api/mail.send.xml?" _
& "api_user=" & eUser _
& "&api_key=" & ePass _
& "&to=" & eTo _
& "&toname=" & eToName _
& "&subject=" & eSubject _
& "&text=" & eBody _
& "&from=" & eFrom _
& strAttachments
' files[file1.jpg]=file1.jpg&files[file2.pdf]=file2.pdf
Set xmlhttp = CreateObject("MSXML2.XMLHTTP")

xmlhttp.Open "POST", sReq, False
xmlhttp.send
[LEFT] byteData = xmlhttp.responseBody
[/LEFT]
 
Set xmlhttp = Nothing

strXML = StrConv(byteData, vbUnicode)

End Function
הוספתי את הUTF8

קוד:
Option Compare Database

Private Declare Function WideCharToMultiByte Lib "kernel32" ( _
    ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpWideCharStr As Long, _
    ByVal cchWideChar As Long, _
    ByVal lpMultiByteStr As Long, _
    ByVal cbMultiByte As Long, _
    ByVal lpDefaultChar As Long, _
    ByVal lpUsedDefaultChar As Long) As Long
    
' CodePage constant for UTF-8
Private Const CP_UTF8 = 65001

''' Return byte array with VBA "Unicode" string encoded in UTF-8
Public Function Utf8BytesFromString(strInput As String) As Byte()
    Dim nBytes As Long
    Dim abBuffer() As Byte
    ' Get length in bytes *including* terminating null
    nBytes = WideCharToMultiByte(CP_UTF8, 0&, ByVal StrPtr(strInput), -1, vbNull, 0&, 0&, 0&)
    ' We don't want the terminating null in our byte array, so ask for `nBytes-1` bytes
    ReDim abBuffer(nBytes - 2)  ' NB ReDim with one less byte than you need
    nBytes = WideCharToMultiByte(CP_UTF8, 0&, ByVal StrPtr(strInput), -1, ByVal VarPtr(abBuffer(0)), nBytes - 1, 0&, 0&)
    Utf8BytesFromString = abBuffer
End Function
באנגלית הוא שולח מצוין.
כשאני משנה את השורה הזו
קוד:
eSubject = "Easy Way To Email From Access"
למילה שלום

קוד:
eSubject = "שלום"
הוא עושה בעיות..
בתודה מראש.

אולי מעניין אותך גם...

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה