תודה (:
ראשי > תיכנות > שליחת מייל בC/VBS/BAT איך?
- C -
1. שימוש בספרייה קיימת שמאפשרת זאת. (גוגל)
2. פתיחת סוקט לשרת דואר וביצוע תקשורת עם שרת הדואר לשליחת דואל (מידע נוסף בRFC של SMTP)
- VBS -
כזרוכ לי אמור להיות אובייקט שיודע לעשות את זה (גוגל!)
- BAT -
שוב אפשר לכתוב סקריפט שישתמש ב TELNET לדוגמא ושוב יתקשר בצורה ישירה על גבי SMTP ויבקש ממנו לשלוח מייל.
- 9009l3 -
בקשר לVBS.. כן יש אובייקט שעושה את זה.. אבל משום מה זה מציג לי שגיאה שלא קינפגתי שם משהו נכון.. ואני לקחתי את הקוד ישר מהאתר בתור דוגמה.. ואין שם שום מקום הגיוני לקינפוגים.. רק האימייל של המקבל ושל השולח.. וכמובן ההודעה עצמה.
ובקשר לבBAT.. אי אפשר לכתוב פקודות לטלנט דרך קובץ באטץ’ אם אני זוכר נכון..
למד את פרוטוקול SMTP (הוא לא כל כך קשה), ובנה פונקציה שתשלח לך אימייל.
ואם אתה רוצה מוכן, תנסה לחפש ב pscode.com מילות כגון send mail וזה בטוח ימצא לך משהו.
מתייחס לתשובה 2 שלי
BAT.. אפשר המון דברים
אתה יכול להאכיל את טלנט ב stdin שלו כמו שאפשר עם כל דבר אחר
קוד:telnet ip 25 < SendMailScript.txt
ואני התכוונתי שהוא יכול גם לבנות פונקציה ב C שמקבלת פרמטר שרת, פורט (אף על פי הברירת מחדל יש כאלו שהפורטים שונים), כתובת מקור, כתובת יעד, נושא, הודעה.
משהו שהאב טיפוס (prototype) שלו:
קוד:
int sendmail(char *server,int port,char *source,char *destenation,char *topic,char *message);
שים לב שאם אתה רוצה לשלוח קבצים, זה עניין אחר לגמרי ואתה צריך גם לשנות את הmime בהידר שאתה שולח, לעשות לו multiply message או איך שקוראים לזה, ואת הקובץ לשלוח בbase64. אני לא בדיוק זוכר, אל תסמוך על זה, אבל אתה יכול לבדוק בגוגל.
אתה יכול אולי להעזר פה:
http://www.underwar.co.il/document-details.asp?id=321
ואם אתה לא יודע כיצד עובדים עם סוקטים, יש במדריך שלי: http://cproject.awardspace.com
וגם במדריך של ביג’ לתכנות רשת (הרבה יותר טוב)
http://penguin.org.il/guides/beej/index.html
והנה הRFC של הפרוטוקול:
http://www.faqs.org/rfcs/rfc2821.html
אבל אני כבר הלכתי על גדול, ביחס לTELNET.
אם אתה רוצה משהו פשוט, תוכל פשוט להשתמש במה שHLL אמר,ולהשתמש בפקודת SYSTEM ולהכניס את הקלט לtelnet.
בהצלחה![ההודעה נערכה על-ידי T4uSBaZ ב-23/06/2007 11:53:50]
מתייחס לתשובה 2 שלי
BAT.. אפשר המון דברים
אתה יכול להאכיל את טלנט ב stdin שלו כמו שאפשר עם כל דבר אחר
קוד:telnet ip 25 < SendMailScript.txt
ניסיתי עם זה..
הנה הBAT שלי:
telnet mail.google.com 25 < SendMailScript.txt
pause
והנה הSendMailScript.txt
mail from:admin@icq.com
rcpt to:X@y.z
data
hello :)
.
אבל זה לא עובד... זה נכנס לטלנט ועושה PAUSE וזהו... לא שולח כלום ולא מציג שום שגיאה..
ככה עושים את זה?
[ההודעה נערכה על-ידי L[s]D ב-25/06/2007 11:08:50]
2. במקרה של שרת אחר, עלייך לסיים לעבוד עם הפרוטוקול!
קוד:
Mail From: <admin@icq.com>
Rcpt To: <x@y.z>
DATA
from: icq manager <admin@icq.com>
to: <x@y.z>
subject :hi man
Do you want my company? i don’t want it anymore.
.
quit
אכפת לך להכין לי שני קבצים כאלה ולהעלות לפה או בהודעה פרטית?
זה יקח לך שניה..