Logo

רד-בורד: ארכיון

ראשי > תיכנות > שליחת מייל בC/VBS/BAT איך?

20/06/2007 15:54:23 L[s]D
כותרת..

תודה (:
20/06/2007 22:56:49 HLL
חלופות:

- C -
1. שימוש בספרייה קיימת שמאפשרת זאת. (גוגל)
2. פתיחת סוקט לשרת דואר וביצוע תקשורת עם שרת הדואר לשליחת דואל (מידע נוסף בRFC של SMTP)
- VBS -
כזרוכ לי אמור להיות אובייקט שיודע לעשות את זה (גוגל!)
- BAT -
שוב אפשר לכתוב סקריפט שישתמש ב TELNET לדוגמא ושוב יתקשר בצורה ישירה על גבי SMTP ויבקש ממנו לשלוח מייל.

- 9009l3 -

21/06/2007 00:56:04 L[s]D
הממ.. לא מצאתי בגוגל את הספריה בC שמאפשרת שליחת אימייל.. אחרת לא הייתי שואל פה..
בקשר לVBS.. כן יש אובייקט שעושה את זה.. אבל משום מה זה מציג לי שגיאה שלא קינפגתי שם משהו נכון.. ואני לקחתי את הקוד ישר מהאתר בתור דוגמה.. ואין שם שום מקום הגיוני לקינפוגים.. רק האימייל של המקבל ושל השולח.. וכמובן ההודעה עצמה.
ובקשר לבBAT.. אי אפשר לכתוב פקודות לטלנט דרך קובץ באטץ’ אם אני זוכר נכון..
22/06/2007 14:07:18 T4uSBaZ
אתה יכול לבנות פונקציה משלך.
למד את פרוטוקול SMTP (הוא לא כל כך קשה), ובנה פונקציה שתשלח לך אימייל.

ואם אתה רוצה מוכן, תנסה לחפש ב pscode.com מילות כגון send mail וזה בטוח ימצא לך משהו.
23/06/2007 02:51:07 HLL
כן מה שאמר טאזבאז (איך אומרים תשם שלך בעברית? אין לי כוח לקונטרול-שיפט)
מתייחס לתשובה 2 שלי

BAT.. אפשר המון דברים
אתה יכול להאכיל את טלנט ב stdin שלו כמו שאפשר עם כל דבר אחר
קוד:telnet ip 25 < SendMailScript.txt
23/06/2007 11:52:14 T4uSBaZ
קוראים לי אבידור. השם המסובך והמכוער הזה (שאין לי מושג למה אני משתמש בו) הוא הצפנות שונות של אבידור..=\

ואני התכוונתי שהוא יכול גם לבנות פונקציה ב 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]
25/06/2007 11:08:16 L[s]D
ציטוט:כן מה שאמר טאזבאז (איך אומרים תשם שלך בעברית? אין לי כוח לקונטרול-שיפט)
מתייחס לתשובה 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]
25/06/2007 14:01:09 T4uSBaZ
1. אני חושב שהשרת הספציפי הזה דורש זיהוי עם שם וסיסמא. נסה לחפש שרת אחר.
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

25/06/2007 17:12:02 L[s]D
לא.. ניתי כמו שנתת עכשיו וזה עדין עושה את אותו הדבר...
אכפת לך להכין לי שני קבצים כאלה ולהעלות לפה או בהודעה פרטית?
זה יקח לך שניה..
עמודים: 1