PHS経由でネットに接続できるEthernetアダプタのファームウェアをハック・後編 ―― 画像付きメールを利用した遠隔監視システムの製作事例
// Send sub char SendStr(char s,char *b){if(Write(s,b,StrLen(b))<0)return -2; WaitWriteComplete(s);return 0;}
char SmtpHandler(char soc) { int len; char *recbuf, *sendbuf; char *MailFrom="camera@server.jp", *MailName="OS-1 Camera"; char *Subject="Photo from OS-1",*MsgBody="Mail from OS-1エrエn"; char *SmtpName="name", *SmtpPass="passwd"; if(SmtpState) {if((len=Read(soc,2000))<0)return -1;recbuf=GetReceiveBuffer(soc,1);
} MemoryFree(recbuf); switch(SmtpState){ case 1: if(SendStr(soc,"HELO OS1エrエn")<0)return -2; SmtpState++;break; // SmtpState=6;break; case 2: if(SendStr(soc,"AUTH LOGINエrエn")<0)return -2;SmtpState++;break; case 3: sendbuf=MemoryAlloc(128);BASE64::Enc64(sendbuf,SmtpName); StrCat(sendbuf,"エrエn");if(SendStr(soc,sendbuf)<0)return -2; MemoryFree(sendbuf);SmtpState++;break; case 4: sendbuf=MemoryAlloc(128);BASE64::Enc64(sendbuf,SmtpPass); StrCat(sendbuf,"エrエn");if(SendStr(soc,sendbuf)<0)return -2; MemoryFree(sendbuf);SmtpState++;break; case 5: if(SendStr(soc,"RSETエrエn")<0)return -2;SmtpState++;break; case 6: sendbuf=MemoryAlloc(StrLen(MailFrom)+15); StrCpy(sendbuf,"MAIL FROM:<");StrCat(sendbuf,MailFrom); StrCat(sendbuf,">エrエn");if(SendStr(soc,sendbuf)<0)return -2; MemoryFree(sendbuf);SmtpState++;break; case 7: sendbuf=MemoryAlloc(StrLen(MailTo)+13); StrCpy(sendbuf,"RCPT TO:<");StrCat(sendbuf,MailTo); StrCat(sendbuf,">エrエn");if(SendStr(soc,sendbuf)<0)return -2; MemoryFree(sendbuf);SmtpState++;break; case 8: if(SendStr(soc,"DATAエrエn")<0)return -2;SmtpState++;break; case 9: sendbuf=MemoryAlloc(StrLen(MailTo)+8); StrCpy(sendbuf,"To:<");StrCat(sendbuf,MailTo);StrCat(sendbuf,">エrエn"); if(SendStr(soc,sendbuf)<0)return -2;MemoryFree(sendbuf); sendbuf=MemoryAlloc(StrLen(MailName)+StrLen(MailFrom)+12); StrCpy(sendbuf,"From: ");StrCat(sendbuf,MailName);StrCat(sendbuf," <"); StrCat(sendbuf,MailFrom);StrCat(sendbuf,">エrエn"); if(SendStr(soc,sendbuf)<0)return -2;MemoryFree(sendbuf);
if(SendStr(soc,"エrエn.エrエn")<0)return -2;SmtpState++;break; |
リスト1 画像を添付してメールを送信するSMTPCAMファイル