File tree Expand file tree Collapse file tree 2 files changed +29
-3
lines changed
Expand file tree Collapse file tree 2 files changed +29
-3
lines changed Original file line number Diff line number Diff line change @@ -48,16 +48,16 @@ func extractBodyAsMarkdown(msg *mail.Message) (string, error) {
4848 if perr == io .EOF {
4949 break
5050 }
51+ pct := part .Header .Get ("Content-Type" )
52+ pcte := part .Header .Get ("Content-Transfer-Encoding" )
53+ ptype , pparams , _ := mime .ParseMediaType (pct )
5154 if perr != nil {
5255 return "" , perr
5356 }
5457 // skip attachments
5558 if disp := strings .ToLower (part .Header .Get ("Content-Disposition" )); strings .HasPrefix (disp , "attachment" ) {
5659 continue
5760 }
58- pct := part .Header .Get ("Content-Type" )
59- pcte := part .Header .Get ("Content-Transfer-Encoding" )
60- ptype , _ , _ := mime .ParseMediaType (pct )
6161 switch ptype {
6262 case "text/plain" :
6363 b , e := readAndDecodePart (part , pct , pcte )
@@ -71,6 +71,9 @@ func extractBodyAsMarkdown(msg *mail.Message) (string, error) {
7171 return "" , e
7272 }
7373 firstHTML = string (b )
74+ case "multipart/alternative" :
75+ mr = multipart .NewReader (part , pparams ["boundary" ])
76+ continue
7477 default :
7578 return "" , errors .New ("no text part found" )
7679 }
Original file line number Diff line number Diff line change @@ -115,3 +115,26 @@ func main() {
115115 initS3 ()
116116 lambda .Start (handler )
117117}
118+
119+ func debugMain () {
120+ if len (os .Args ) < 2 {
121+ fmt .Println ("usage: ./ticket-dispatcher <filename>" )
122+ return
123+ }
124+ file , err := os .Open (os .Args [1 ])
125+ if err != nil {
126+ log .Fatalf ("error opening file: %v" , err )
127+ }
128+ defer file .Close ()
129+
130+ msg , err := mail .ReadMessage (file )
131+ if err != nil {
132+ log .Fatalf ("error parsing email: %v" , err )
133+ }
134+ body , err := extractBodyAsMarkdown (msg )
135+ if err != nil {
136+ log .Fatalf ("error extracting body: %v" , err )
137+ } else {
138+ fmt .Println (body )
139+ }
140+ }
You can’t perform that action at this time.
0 commit comments