איך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?
-
@הכוכב-שלנו
צריך שם לדעתי תיקון קטן אבל הקוד הזה אמור לעבוד פיקסFunction SendMail(sEmail As String, Title As String, sText As String, Optional sFile As String = "") As String On Error Resume Next Dim cdomsg As Object Set cdomsg = CreateObject("CDO.message") With cdomsg.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 465 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user@gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .update End With ' build email parts With cdomsg .To = "to@gmail.com" .From = "from@gmail.com" '.sender = .Subject = "Subject" If Me.HtmlBody Then .HtmlBody = sText Else .TextBody = '"the full message body goes here. you may want to create a variable to hold the text" End If If Len(sFile) > 0 Then Dim arr As Variant arr = Split(sFile, ";") For i = 0 To UBound(arr) If Len(arr(i)) > 0 Then If Dir(CStr(arr(i)), vbNormal) <> vbNullString Then .AddAttachment arr(i) End If End If Next End If .Send End With Set cdomsg = Nothing If Err = 0 Then SendMail = "Mail Send" Else SendMail = Err.Description End If End Function
-
@מלא אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
אשמח לעזרהמה ש@clickone הביא זה פונקציה שאמורים לשים אותה מחוץ ללחצן ולשלוח לו call מלחצן + הפרמטרים.
מה זה CALL ואיזה פרמטרים? (שם קובץ וכד'?)
אם אני זוכר נכון, הקוד הזה מצריך רפרנסים.
"רפרנסים" - מה זה?
כמו"כ אתה צריך לאפשר בג'ימייל שליחה מתוכנות חיצוניות.
איזה הרשאה לתת?תודה רבה, אני חדש, רק מי שיש לו זמן שישיב לי בבקשה, תודה!
-
@הכוכב-שלנו
אני שם לך כאן קוד בשביל לחצן.
בגדול לא צריך שום שינוי בגימייל, אבל אם אתה מקבל שגיאה מגימייל, אז זו בעייה של רמת אבטחה שייתכן שצריך להוריד.On Error Resume Next Dim cdomsg As Object Set cdomsg = CreateObject("CDO.message") With cdomsg.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 465 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user@gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .update End With ' build email parts With cdomsg .To = "to@gmail.com" .From = "from@gmail.com" '.sender = .Subject = "Subject" .TextBody = '"the full message body goes here. you may want to create a variable to hold the text" If Len(sFile) > 0 Then Dim arr As Variant arr = Split(sFile, ";") For i = 0 To UBound(arr) If Len(arr(i)) > 0 Then If Dir(CStr(arr(i)), vbNormal) <> vbNullString Then .AddAttachment arr(i) End If End If Next End If .Send End With Set cdomsg = Nothing If Err = 0 Then msgbox "Mail Send" Else msgbox Err.Description End If
-
@הכוכב-שלנו
מותקן בטוח.
CDO זו ספרייה של מייקרוסופט שנותנת לשלוח מיילים.
שים לב שאתה צריך לשנות שם את הפרמטרים של שולח ולמי אתה שולח וכואם לא הולך אני יעלה קובץ דוגמא
-
@dovid אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@הכוכב-שלנו בשביל מה שאתה רוצה (תעזרו לי לעשות X) יש את גומלין או את פרוג.
פה זה פורום תכנות וזה אומר שכל שאלה אמורה לקדם אותך בללמוד תכנות לא ב"להצליח משהו באקסס" ע"י שמישהו עשה לך והעתקת.קיבלתי
-
@clickone אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
בגדול לא צריך שום שינוי בגימייל, אבל אם אתה מקבל שגיאה מגימייל, אז זו בעייה של רמת אבטחה שייתכן שצריך להוריד.
לי הוא לא עבד ללא התרת אפלקציות לא מאובטחות.
השתנה משהו? אני לא מתווכח.. -
@dovid אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@clickone אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@dovid
אני חושב שאם הוא יקח את הקוד הספציפי ויעבור עליו סטפ ביי סטפ הוא יכול ללמוד המון.זה עדיין קפיצה. הוא צריך קודם להציג msgbox וכדומה.
- אני יודע לעשות Msgbox כולל נתונים לפי שדות בטבלה...
- אבל זה בסדר התגרת אותי!
-
-
@הכוכב-שלנו אמר באיך כותבים בVBA קוד לשליחת אימייל ישירות מהאקסס?:
@dovid השם ישמור אותי אם זה נקרא לדעת לכתוב....
דרך אגב אחד התאוות לכל מתחיל באקסס זה הודעות קופצות (זה שיושב לצידך מתפלא, בעיניים שלו זה שכלול יותר גדול משליחת אימייל באקסס למשל...)אין פה מקום לענווה ולדרגות רבות. מי שיודע להציג msgbox הוא נחשב יודע לכתוב קוד VBA. זה 0-1...
אני אכן מציע שתלמד את הקוד שהועלה, תנסה תשאל על כל שורה לא מובנת ואל תוותר עד שתכבוש את הקוד הזה.