bool CMailManager::SendMail(const char* pTitle, const char* pText) { //·¢ËÍÓʼþ if(NULL == m_pMailAlert || 0 == m_pMailAlert->m_u4MailID) { OUR_DEBUG((LM_ERROR, "[CMailManager::SendMail]MailID not set.\n")); return false; } unsigned char * pMail = NULL; pMail = (unsigned char * )ACE_OS::calloc(1, 1); int nRet = 0; nRet = mailText(&pMail, (const unsigned char *)m_pMailAlert->m_szFromMailAddr, (const unsigned char *)m_pMailAlert->m_szToMailAddr, (const unsigned char *)pTitle, (const unsigned char *)pText); nRet = mailEnd(&pMail); ACE_HANDLE fd; nRet = connectSmtp(fd, (const unsigned char *)m_pMailAlert->m_szMailUrl, m_pMailAlert->m_u4MailPort); if(nRet != 0) { OUR_DEBUG((LM_ERROR, "[CMailManager::SendMail]MailID connectSmtp error.\n")); free(pMail); return false; } nRet = authEmail(fd, (const unsigned char *)m_pMailAlert->m_szFromMailAddr, (const unsigned char *)m_pMailAlert->m_szMailPass); if(nRet != 0) { OUR_DEBUG((LM_ERROR, "[CLogFile::SendMail]MailID authEmail error.\n")); free(pMail); return false; } nRet = sendEmail(fd, (const unsigned char *)m_pMailAlert->m_szFromMailAddr, (const unsigned char *)m_pMailAlert->m_szToMailAddr, (const unsigned char *)pMail, (const int)strlen((const char *)pMail)); if(nRet != 0) { OUR_DEBUG((LM_ERROR, "[CLogFile::SendMail]MailID sendEmail error.\n")); free(pMail); return false; } free(pMail); return true; }
int main() { int fd = 0, ret; unsigned char *mail = NULL; const unsigned char *filePath = "./test.jpg"; const unsigned char *mailSubject = "for my love."; const unsigned char *mailBody = "I love you alice!!"; const unsigned char *fromMailAddr= "*****@*****.**"; const unsigned char *mailPasswd= "ecila"; const unsigned char *toMailAddr= "*****@*****.**"; const unsigned char *smtpUrl = "smtp.163.com"; mail = calloc(1, 1); /* prepare mail data */ ret = mailText(&mail, fromMailAddr, toMailAddr, mailSubject, mailBody); ret = mailAttachment(&mail, filePath); ret = mailEnd(&mail); SMTP_Print6("\r\n%s \r\n", mail); printf("\r\nprepare email OK ...\r\n"); /* send to buddy */ fd = connectSmtp(smtpUrl, SMTP_PORT); printf("connect OK ...\r\n"); ret = authEmail(fd, fromMailAddr, mailPasswd); printf("auth OK ...\r\n"); ret = sendEmail(fd, fromMailAddr, toMailAddr, mail, strlen(mail)); printf("send OK ...\r\n"); return 0; }