<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SMTP to HTTP pip]]></title><description><![CDATA[<p dir="rtl">בהמשך לדיון <a href="https://tchumim.com/topic/7810/%D7%A9%D7%99%D7%A0%D7%95%D7%99-%D7%AA%D7%9E%D7%97%D7%95%D7%A8-%D7%91mailgun">כאן</a><br />
ניסיתי לבנות לעצמי בשביל הספורט שרת SMTP שמפנה את כל המידע ישירות לכתובת HTTP<br />
מצאתי <a href="https://github.com/flashmob/go-guerrilla" target="_blank" rel="noopener noreferrer nofollow ugc">פרוייקט</a> שכתוב בGO, שאיתו אפשר לבנות שרת SMTP מאפס<br />
וכן יש שם <a href="https://github.com/flashmob/fastcgi-processor" target="_blank" rel="noopener noreferrer nofollow ugc">תוסף</a> לטיפול במיילים עם fastcgi<br />
לא כל כך הסתדרתי עם הפעלת קבצי PHP מהספריה הנ"ל, אז בניתי תוסף משל עצמי שמפנה הכל לכתובת HTTP המבוקשת.</p>
<p dir="rtl">למי שרוצה להשתמש עם זה צריך קומפיילר של GO<br />
וקצת ידע בסיסי איך ליבא ספריות.<br />
יוצרים את הקובץ הבא</p>
<pre><code>package main

import (
        "fmt"

        "github.com/flashmob/go-guerrilla"
        "github.com/flashmob/go-guerrilla/backends"
        fastcgi_processor "github.com/ynigun/httpmailpip"
)

func main() {
        done := make(chan bool)

        cfg := &amp;guerrilla.AppConfig{
                LogFile:      "stderr",
                AllowedHosts: []string{"koshercode.dev"},
                LogLevel:     "debug",
                BackendConfig: backends.BackendConfig{
                        "save_process":     "HeadersParser|Debugger|FastCGI",
                        "validate_process": "FastCGI",
                        "HttpPipValidate":  "http://myurl.com:8090/validate",
                        "HttpPipSave":      "http://myurl.com:8091/save",
                                        },
        }
        sc := guerrilla.ServerConfig{
                ListenInterface: "0.0.0.0:25",
                IsEnabled:       true,
        }
        cfg.Servers = append(cfg.Servers, sc)
        d := guerrilla.Daemon{Config: cfg}
        d.AddProcessor("FastCGI", fastcgi_processor.Processor)
        err := d.Start()


        if err == nil {
                fmt.Println("Server Started!")
        }
        &lt;-done
}

</code></pre>
<p dir="rtl">בדוגמה הזאת מופעל שרת SMTP בפורט 25 בכתובת 0.0.0.0 (ככה אפשר לגשת לIP החיצוני)<br />
והדומיינים המורשים לקבלת מיילים מוגדרים ב <code>AllowedHosts</code><br />
כשמתקבל מייל, השרת מתחבר לכתובת <a href="http://myurl.com:8090/validate" target="_blank" rel="noopener noreferrer nofollow ugc">http://myurl.com:8090/validate</a> לצורך אימות שמהשתמש קיים<br />
ע"י שהוא שולח את הנתונים rcpt_to=test%!k(MISSING)oshercode.dev בGET<br />
בדוגמה הזאת שלחתי  מייל שנשלח לכתובת <code>test@koshercode.dev</code><br />
(ואני לא יודע למה התווסף ה<code>(MISSING)</code> באמצע)</p>
<p dir="rtl">אם השרת מקבל את התשובה <code>PASSED</code><br />
הוא ממשיך לשלב הבא ושולח את כל הנתונים בPOST<br />
לכתובת <a href="http://myurl.com:8091/save" target="_blank" rel="noopener noreferrer nofollow ugc">http://myurl.com:8091/save</a><br />
עם הסטרינג הבא<br />
<code>ContentType_0=application%2Fx-ini&amp;Filename_0=ext.ini&amp;body=%3Cdiv+dir%3D%22rtl%22%3E052702%3Cimg+src%3D%22https%3A%2F%2Fpxl-mailtracker.com%2Fpixel%2FsvpWQyo6UdrJ5o3q0pJs%3Frid%3DsvpWQyo6UdrJ5o3q0pJs%22+width%3D%221%22+height%3D%221%22+border%3D%220%22%3E%3C%2Fdiv%3E&amp;helo=mail-qv1-f44.google.com&amp;mail_from=sbb0799%40gmail.com&amp;rcpt_to_0=test%40koshercode.dev&amp;remote_ip=209.85.219.44&amp;subject=test&amp;tls_on=false</code><br />
(זה יצא קצת מבולגן אז אני ילך לא לפי הסדר)<br />
rcpt_to_0 = כתובת הנמען (במקרה ויש כמה אמור להיות גם  rcpt_to_1 וכו')<br />
mail_from = כתובת השולח<br />
body = גוף ההודעה (זה מתקבל כHTML וקצת משתבש כששלוחים אותו כערך בPOST, אני לא יודע איך ממירים חזרה)<br />
subject = כותרת ההודעה<br />
Filename_0 = שם קובץ מצורף (בהמשך אני יראה איך אני שולח אותו בפועל)<br />
ContentType_0 = סוג הקובץ של Filename_0 (לא קריטי פשוט זה פונקציה שהיה לי אז דחפתי)<br />
helo = שם הדומיין ששלח את המייל<br />
remote_ip = כתובת הIP ששלח את המייל<br />
tls_on = האם TLS מופעל (במקרה שלנו לא, אפשר להוסיף את זה בהמשך)</p>
<p dir="rtl">אם השרת SMTP מקבל את התגובה SAVED<br />
אז הוא מחזיר את התשובה לשולח שהמייל התקבל בהצלחה .</p>
<p dir="rtl">יש כאן עוד הרבה פונקציות שעדיין לא הבנתי בדיוק מה זה אומר<br />
אז לכן לא מומלץ להשתמש בסקריפט הזה בפרודקשן.</p>
<p dir="rtl">אשמח לשמוע תגובות, הצעות וכו'.</p>
<p dir="rtl"><strong>עריכה</strong>:למי שרוצה לנסות בלי לההתקין<br />
אפשר לשלוח מייל לכל כתובת בדומיין koshercode.dev (זה לא משנה מה המשתמש כי אני מחזיר  <code>PASSED</code> לכולם)<br />
ובכותרת לכתוב את הכתובת HTTP שאליו אתם רוצים להפנות את כל הפלט<br />
(לא להכניס שום דבר אחר רק את הכתובת).<br />
ובבקשה לא להכניס כתובת שגויים כי אז השרת שלי כנראה יפול <img src="https://tchumim.com/assets/plugins/nodebb-plugin-emoji/emoji/android/1f635.png?v=cf1b4e11576" class="not-responsive emoji emoji-android emoji--dizzy_face" style="height:23px;width:auto;vertical-align:middle" title=":dizzy_face:" alt="😵" /></p>
]]></description><link>https://tchumim.com/topic/7913/smtp-to-http-pip</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 08:15:17 GMT</lastBuildDate><atom:link href="https://tchumim.com/topic/7913.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Feb 2020 14:22:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SMTP to HTTP pip on Fri, 14 Feb 2020 09:41:30 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/nigun" aria-label="Profile: nigun">@<bdi>nigun</bdi></a> הם צריכים לשלוח את הספאם שלהם, וכדי שהמסננים לא יחסמו אותם הם מנסים לשלוח מכל שרת אפשרי</p>
]]></description><link>https://tchumim.com/post/93232</link><guid isPermaLink="true">https://tchumim.com/post/93232</guid><dc:creator><![CDATA[יוסף בן שמעון]]></dc:creator><pubDate>Fri, 14 Feb 2020 09:41:30 GMT</pubDate></item><item><title><![CDATA[Reply to SMTP to HTTP pip on Fri, 14 Feb 2020 07:09:33 GMT]]></title><description><![CDATA[<p dir="rtl">אני רואה שגם בתחום בSMTP יש ספאם<br />
זה הסגנון של הלוג שקיבלתי אחרי שהשרת היה פתוח קצת זמן</p>
<pre><code>DEBU[53226] [0.0.0.0:25] Waiting for a new client. Next Client ID: 6 
INFO[53226] Handle client [188.75.74.132]                 event=connect id=5
DEBU[53226] Writing response to client: 
 20 scw-clever-swirles SMTP Guerrilla(unknown) #5 (1) 2020-02-14T07:28:31+02:00
DEBU[53226] Client sent: ehlo SRVEDGE1                   
DEBU[53226] Writing response to client: 
250-scw-clever-swirles Hello
250-SIZE 10485760
250-PIPELINING
250-ENHANCEDSTATUSCODES
 50 HELP
DEBU[53226] Client sent: Rset                            
DEBU[53226] Writing response to client: 
    2.1.0 OK
DEBU[53226] Client sent: Mail from:&lt;spameri@tiscali.it&gt;  
INFO[53226] Mail from                                     address=188.75.74.132 domain=tiscali.it event=mailfrom helo=SRVEDGE1 id=5
DEBU[53226] Writing response to client: 
    2.1.0 OK
DEBU[53226] Client sent: RCPT to:&lt;spameri@tiscali.it&gt;    
DEBU[53226] Writing response to client: 
 54 4.1.1 Error: Relay access denied: tiscali.it
DEBU[53227] Client sent: Quit                            
DEBU[53227] Writing response to client: 
  1 2.0.0 Bye
INFO[53227] Disconnect client                             event=disconnect id=5

</code></pre>
<p dir="rtl">לא הבנתי בדיוק מה הם מנסים לעשות<br />
הם מנסים לשלוח מייל מspameri@tiscali.it לspameri@tiscali.it<br />
מה הם מנסים למצוא?<br />
שרת SMTP חינמי?</p>
]]></description><link>https://tchumim.com/post/93229</link><guid isPermaLink="true">https://tchumim.com/post/93229</guid><dc:creator><![CDATA[nigun]]></dc:creator><pubDate>Fri, 14 Feb 2020 07:09:33 GMT</pubDate></item></channel></rss>