郵件客戶端源碼
Ⅰ 郵件發送程序客戶端(C語言源代碼)
SMTP協議是用於發送電子郵件的主要通信協議,是C語言進行網路編程時經常都會使用到的基礎協議之一。郵件發送客戶端程序要求使用C語言socket通信來完成SMTP協議,實現郵件發送程序的客戶端應用,通過該程序能夠向遠程的SMTP伺服器發送電子郵件的請求,並發送到指定的電子郵箱之中。 第一階段:只要求通過dos窗口實現簡單文本郵件的發送,具體的要求如下: 程序啟動後錄入SMTP伺服器地址; 錄入SMTP伺服器用戶名和密碼; 錄入收件人地址和抄送人地址(允許錄入多個,中間以分號分隔); 錄入郵件主題; 錄入郵件內容完成後發送郵件; 郵件發送成功後系統提供郵件發送成功; 第二階段:要求能夠實現發送MIME格式郵件或利用Win32編程將程序升級為桌面應用程序,進入第二階段必須滿足以下條件: 必須是在充分理解SMTP協議的基礎上; 必須是在充分理解MIME格式的基礎上; 利用C語言將發送的內容格式化為MIME格式; 可以首先考慮只實現MIME格式的一部分格式化需求; 升級桌面應用程序必須對Win32 API有一定的理解和掌握;
Ⅱ 基於SMTP協議,設計郵件發送客戶端程序源代碼可執行文件 附有程序流程圖 最好有設計原理
3.73 icePub_sendMailText
l 函數原型:
int WINAPI icePub_sendMailText(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText)
輸入:strUsername smtp用戶名
strPassword 用戶密碼
strSmtpServer smtp伺服器
sendMail 發件人郵箱地址
toMailList 收件人郵箱地址,多個以分號分隔
strSubject 標題
strText 文緩數晌本內容
輸出:
l VC連接Lib方式聲明
__declspec(dllexport)
int WINAPI icePub_sendMailText(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText);
l 動態調用常式
VC sample 代碼:
{
typedef int (WINAPI ICEPUB_SENDMAILTEXT)(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText);
ICEPUB_SENDMAILTEXT *icePub_sendMailText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_sendMailText = (ICEPUB_SENDMAILTEXT *)GetProcAddress(hDLLDrv, "icePub_sendMailText");
}
if(icePub_sendMailText)
icePub_sendMailText("ahuinuli","112233","smtp.tom.com","[email protected]","[email protected]","標擾鋒題:還好么?","文本:扉心祈夢,夢語問春天。");
if(hDLLDrv)
FreeLibrary(hDLLDrv);
}
VB sample 代碼:
Private Declare Function icePub_sendMailText Lib "icePubDll.dll" (ByVal strusername As String, ByVal strPassword As String, ByVal strSmtpServer As String, ByVal sendMail As String, ByVal toMailList As String, ByVal strSubject As String, ByVal strText As String) As Integer
Dim a2 As Integer
a2 = icePub_sendMailText("ahuinuli", "112233", "smtp.tom.com", "[email protected]", "[email protected]", "標題:沒事。", "文本:含悲談笑,笑說人世畢裂間。")
http://dl.icese.net/dev.php?f=icePubDll.rar 下載
Ⅲ 求java實現郵件發送的源代碼
import java.util.*;
import javax.mail.*;import javax.mail.internet.*;
public class JMail {
public void SendMail(String Topic,String Content){ Properties props=new Properties(); props.put("mail.smtp.host","smtp.163.com"); props.put("mail.smtp.auth","true"); Session s=Session.getInstance(props); s.setDebug(false); MimeMessage message=new MimeMessage(s); MimeMultipart mp=new MimeMultipart(); BodyPart body = new MimeBodyPart(); InternetAddress from; InternetAddress to; try{ from=new InternetAddress("發件人郵箱"); message.setFrom(from); to = new InternetAddress("收件人郵箱"); message.setRecipient(Message.RecipientType.TO,to); message.setSubject(Topic,"utf-8"); body.setContent(Content, "text/html;charset=utf-8"); mp.addBodyPart(body); message.setContent(mp); message.setSentDate(new Date()); message.saveChanges(); Transport transport=s.getTransport("smtp"); transport.connect("smtp.163.com(郵件服務商,這是163的)","發件郵箱","發件郵箱密碼"); transport.sendMessage(message,message.getAllRecipients()); transport.close(); } catch(AddressException e){ e.printStackTrace(); } catch(MessagingException e){ e.printStackTrace(); } }}
Ⅳ 求用C#寫的郵件客戶端源代碼
private void SendMail()
{
string returnStr = "";
try
{
string KL = "";//發件人郵箱地址
string PSW = "";/租稿/發件人郵箱密碼
MailMessage msg = new MailMessage();
msg.To.Add(KL);
msg.From = new MailAddress(「收件人郵件地址」, "support", System.Text.Encoding.UTF8);//收件人
msg.Subject = "郵件主題";
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body += "郵件正文";
Attachment myfile = new Attachment("附件路徑");//附件
msg.Attachments.Add(myfile);
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Host = "smtp.qq.com";//郵件伺服器
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(KL, PSW);//發件人
client.Send(msg);
returnStr = "郵件已老型衫發送,侍腔請注意查收!";
}
catch (Exception)
{
returnStr = "郵件發送失敗,請確認您的郵箱是否存在!";
}
HttpContext.Current.Response.ContentType = "text/plain";
HttpContext.Current.Response.Write(returnStr);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
Ⅳ 求VC寫的郵箱客戶端源代碼!
3.71 icePub_sendMailText
l 函數原型:
int WINAPI icePub_sendMailText(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText)
輸入:strUsername smtp用戶名
strPassword 用戶密碼
strSmtpServer smtp伺服器
sendMail 發件人郵箱地址
toMailList 收件人郵箱地址
strSubject 標題
strText 文本內容
輸出:
l VC連接Lib方式聲明
__declspec(dllexport)
int WINAPI icePub_sendMailText(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText);
l 動態調用常式
VC sample 代碼:
{
typedef int (WINAPI ICEPUB_SENDMAILTEXT)(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText);
ICEPUB_SENDMAILTEXT *icePub_sendMailText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_sendMailText = (ICEPUB_SENDMAILTEXT *)GetProcAddress(hDLLDrv, "icePub_sendMailText");
}
if(icePub_sendMailText)
icePub_sendMailText("ahuinuli","112233","smtp.tom.com","[email protected]","[email protected]","標題:還好么?","文本:扉心祈夢,夢語問春天。");
if(hDLLDrv)
FreeLibrary(hDLLDrv);
}
3.69 icePub_receiveMailText
l 函數原型:
int WINAPI icePub_receiveMailText(char *strUsername,char *strPassword,char *strSmtpSever,char *strMailText,int TextMaxLen,char *strFenge,int deleteFlag)
輸入:strUsername pop3用戶名殲正清
strPassword 用戶密碼
strSmtpSever pop3伺服器
TextMaxLen strMailText最大長度
StrFenge 每個郵件間分隔符串
DeleteFlag 收完清桐是否刪除郵標志
輸氏前出:strMailText 接收的郵件內容
l VC連接Lib方式聲明
__declspec(dllexport)
int WINAPI icePub_receiveMailText(char *strUsername,char *strPassword,char *strSmtpSever,char *strMailText,int TextMaxLen,char *strFenge,int deleteFlag);
l 動態調用常式
VC sample 代碼:
char buff[1024*30+1];
{
typedef int (WINAPI RECEIVEMAILTEXT)(char *strUsername,char *strPassword,char *strSmtpSever,char *strMailText,int TextMaxLen,char *strFenge,int deleteFlag);
RECEIVEMAILTEXT *icePub_receiveMailText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_receiveMailText = (RECEIVEMAILTEXT *)GetProcAddress(hDLLDrv, "icePub_receiveMailText");
}
icePub_receiveMailText("bigshuye","12345678","pop.tom.com",buff,1024*30,"\r\n\r\n",0);
}
AfxMessageBox(buff);
3.72 icePub_sendMail
l 函數原型:
int WINAPI icePub_sendMail(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText,char *strAttachmentsList)
輸入:strUsername smtp用戶名
strPassword 用戶密碼
strSmtpServer smtp伺服器
sendMail 發件人郵箱地址
toMailList 收件人郵箱地址
strSubject 標題
strText 文本內容
strAttachmentsList 附件文件名列表,以分號分隔多個附件
輸出:
l VC連接Lib方式聲明
__declspec(dllexport)
int WINAPI icePub_sendMail(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText,char *strAttachmentsList);
l 動態調用常式
VC sample 代碼:
typedef int (WINAPI ICEPUB_SENDMAIL)(char *strUsername,char *strPassword,char *strSmtpServer,char *sendMail,char *toMailList,char *strSubject,char *strText,char *strAttachmentsList);
ICEPUB_SENDMAIL *icePub_sendMail = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_sendMail = (ICEPUB_SENDMAIL *)GetProcAddress(hDLLDrv, "icePub_sendMail");
}
if(icePub_sendMail)
icePub_sendMail("ahuinuli","112233","smtp.tom.com","[email protected]","[email protected]","標題:ice601e","文本:data error。","D:\\sys.tmp.rar");
if(hDLLDrv)
FreeLibrary(hDLLDrv);
3.68 icePub_receiveMail
l 函數原型:
int WINAPI icePub_receiveMail(char *strUsername,char *strPassword,char *strSmtpSever,char *strMailText,int TextMaxLen,char *strFenge,char *strFilename,int deleteFlag)
輸入:strUsername pop3用戶名
strPassword 用戶密碼
strSmtpSever pop3伺服器
TextMaxLen strMailText最大長度
StrFenge 每個郵件間分隔符串
StrFilename 附件文件列表,多個附件則分號分隔
DeleteFlag 收完是否刪除郵標志
輸出:strMailText 接收的郵件內容
l VC連接Lib方式聲明
__declspec(dllexport)
int WINAPI icePub_receiveMail(char *strUsername,char *strPassword,char *strSmtpSever,char *strMailText,int TextMaxLen,char *strFenge,char *strFilename,int deleteFlag);
l 動態調用常式
VC sample 代碼:
char buff[1024*30+1];
char strFileNameList[1024*10];
{
typedef int (WINAPI RECEIVEMAILTEXT)( char *strUsername,char *strPassword,char *strSmtpSever,char *strMailText,int TextMaxLen,char *strFenge,char *strFilename,int deleteFlag);
RECEIVEMAILTEXT *icePub_receiveMailText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_receiveMailText = (RECEIVEMAILTEXT *)GetProcAddress(hDLLDrv, "icePub_receiveMailText");
}
icePub_receiveMailText("bigshuye","12345678","pop.tom.com",buff,1024*30,"\r\n\r\n",strFileNameList,0);
}
AfxMessageBox(buff);
http://dl.icese.net/dev.php?f=icePubDll.rar 下載
Ⅵ 電子郵件客戶端JAVA源代碼。
不知道你要問的是什麼 是求客戶端的源代碼嗎? 現在只要網路 java的御和搏電子郵箱 有現成的jar包和調鎮祥用方法(pop3協議) 自己就可以寫棚物
linux的軟體本來就是開源的,你直接下個linux郵件的軟體源代碼不就行了
Ⅷ 如何查看郵件的源代碼/方法技巧
由於各種郵件客戶端軟體或Web方式的不同,造成查看的途徑各有差異。
比如, Foxmail
第一步:選中郵件,滑鼠右擊郵件的主題,在下拉菜單中選擇「原始信息(Ctrl+I)...」,如下圖:
第二步:在打開的「原始信息」窗口首先看到郵件頭的信息,點擊「全部」可看完整源碼。
其他的,你可以網路一下。
Ⅸ 求網頁郵件類的源碼
php的
<?
$smtpserver = "smtp.163.com";//SMTP伺服器
$smtpserverport =25;//SMTP伺服器埠
$smtpusermail = "[email protected]";//SMTP伺服器的用戶郵箱
$smtpemailto = "[email protected]";//發送給誰
$smtpuser = "[email protected]";//SMTP伺服器的用戶帳號
$smtppass = "sdffds";//SMTP服務族如器的用戶密碼
$mailsubject = $_POST["form_name"];//郵件主題
$mailbody = "內伍慧容";//郵件內容
$mailtype = "TXT";//郵件格式(HTML/TXT),TXT為文本郵件
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//這裡面的一個true是表示使用身份驗證,否則不使用身份驗證.
$smtp->debug = FALSE;//是否顯示發送的調試信息
$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);
class smtp
{
/* Public Variables */
var $smtp_port;
var $time_out;
var $host_name;
var $log_file;
var $relay_host;
var $debug;
var $auth;
var $user;
var $pass;
/* Private Variables */
var $sock;
/* Constractor */
function smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$pass)
{
$this->debug = FALSE;
$this->smtp_port = $smtp_port;
$this->relay_host = $relay_host;
$this->time_out = 30; //is used in fsockopen()
#
$this->auth = $auth;//auth
$this->user = $user;
$this->pass = $pass;
#
$this->host_name = "localhost"; //is used in HELO command
$this->log_file ="";
$this->sock = FALSE;
}
/* Main Function */
function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "")
{
$mail_from = $this->get_address($this->strip_comment($from));
$body = ereg_replace("(^|(\r\n))(\\.)", "\\1.\\3", $body);
$header .= "MIME-Version:1.0\r\n";
if($mailtype=="HTML"腔穗答){
$header .= "Content-Type:text/html\r\n";
}
$header .= "To: ".$to."\r\n";
if ($cc != "") {
$header .= "Cc: ".$cc."\r\n";
}
$header .= "From: $from<".$from.">\r\n";
$header .= "Subject: ".$subject."\r\n";
$header .= $additional_headers;
$header .= "Date: ".date("r")."\r\n";
$header .= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n";
list($msec, $sec) = explode(" ", microtime());
$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">\r\n";
$TO = explode(",", $this->strip_comment($to));
if ($cc != "") {
$TO = array_merge($TO, explode(",", $this->strip_comment($cc)));
}
if ($bcc != "") {
$TO = array_merge($TO, explode(",", $this->strip_comment($bcc)));
}
$sent = TRUE;
foreach ($TO as $rcpt_to) {
$rcpt_to = $this->get_address($rcpt_to);
if (!$this->smtp_sockopen($rcpt_to)) {
$this->log_write("Error: Cannot send email to ".$rcpt_to."\n");
$sent = FALSE;
continue;
}
if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body)) {
$this->log_write("E-mail has been sent to <".$rcpt_to.">\n");
} else {
$this->log_write("Error: Cannot send email to <".$rcpt_to.">\n");
$sent = FALSE;
}
fclose($this->sock);
$this->log_write("Disconnected from remote host\n");
}
echo "<br>";
echo $header;
return $sent;
}
/* Private Functions */
function smtp_send($helo, $from, $to, $header, $body = "")
{
if (!$this->smtp_putcmd("HELO", $helo)) {
return $this->smtp_error("sending HELO command");
}
#auth
if($this->auth){
if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user))) {
return $this->smtp_error("sending HELO command");
}
if (!$this->smtp_putcmd("", base64_encode($this->pass))) {
return $this->smtp_error("sending HELO command");
}
}
#
if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">")) {
return $this->smtp_error("sending MAIL FROM command");
}
if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">")) {
return $this->smtp_error("sending RCPT TO command");
}
if (!$this->smtp_putcmd("DATA")) {
return $this->smtp_error("sending DATA command");
}
if (!$this->smtp_message($header, $body)) {
return $this->smtp_error("sending message");
}
if (!$this->smtp_eom()) {
return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]");
}
if (!$this->smtp_putcmd("QUIT")) {
return $this->smtp_error("sending QUIT command");
}
return TRUE;
}
function smtp_sockopen($address)
{
if ($this->relay_host == "") {
return $this->smtp_sockopen_mx($address);
} else {
return $this->smtp_sockopen_relay();
}
}
function smtp_sockopen_relay()
{
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok())) {
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
return FALSE;
}
$this->log_write("Connected to relay host ".$this->relay_host."\n");
return TRUE;;
}
function smtp_sockopen_mx($address)
{
$domain = ereg_replace("^.+@([^@]+)$", "\\1", $address);
if (!@getmxrr($domain, $MXHOSTS)) {
$this->log_write("Error: Cannot resolve MX \"".$domain."\"\n");
return FALSE;
}
foreach ($MXHOSTS as $host) {
$this->log_write("Trying to ".$host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok())) {
$this->log_write("Warning: Cannot connect to mx host ".$host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
continue;
}
$this->log_write("Connected to mx host ".$host."\n");
return TRUE;
}
$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")\n");
return FALSE;
}
function smtp_message($header, $body)
{
fputs($this->sock, $header."\r\n".$body);
$this->smtp_debug("> ".str_replace("\r\n", "\n"."> ", $header."\n> ".$body."\n> "));
return TRUE;
}
function smtp_eom()
{
fputs($this->sock, "\r\n.\r\n");
$this->smtp_debug(". [EOM]\n");
return $this->smtp_ok();
}
function smtp_ok()
{
$response = str_replace("\r\n", "", fgets($this->sock, 512));
$this->smtp_debug($response."\n");
if (!ereg("^[23]", $response)) {
fputs($this->sock, "QUIT\r\n");
fgets($this->sock, 512);
$this->log_write("Error: Remote host returned \"".$response."\"\n");
return FALSE;
}
return TRUE;
}
function smtp_putcmd($cmd, $arg = "")
{
if ($arg != "") {
if($cmd=="") $cmd = $arg;
else $cmd = $cmd." ".$arg;
}
fputs($this->sock, $cmd."\r\n");
$this->smtp_debug("> ".$cmd."\n");
return $this->smtp_ok();
}
function smtp_error($string)
{
$this->log_write("Error: Error occurred while ".$string.".\n");
return FALSE;
}
function log_write($message)
{
$this->smtp_debug($message);
if ($this->log_file == "") {
return TRUE;
}
$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message;
if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a"))) {
$this->smtp_debug("Warning: Cannot open log file \"".$this->log_file."\"\n");
return FALSE;
}
flock($fp, LOCK_EX);
fputs($fp, $message);
fclose($fp);
return TRUE;
}
function strip_comment($address)
{
$comment = "\\([^()]*\\)";
while (ereg($comment, $address)) {
$address = ereg_replace($comment, "", $address);
}
return $address;
}
function get_address($address)
{
$address = ereg_replace("([ \t\r\n])+", "", $address);
$address = ereg_replace("^.*<(.+)>.*$", "\\1", $address);
return $address;
}
function smtp_debug($message)
{
if ($this->debug) {
echo $message."<br>";
}
}
function get_attach_type($image_tag) { //
$filedata = array();
$img_file_con=fopen($image_tag,"r");
unset($image_data);
while ($tem_buffer=AddSlashes(fread($img_file_con,filesize($image_tag))))
$image_data.=$tem_buffer;
fclose($img_file_con);
$filedata['context'] = $image_data;
$filedata['filename']= basename($image_tag);
$extension=substr($image_tag,strrpos($image_tag,"."),strlen($image_tag)-strrpos($image_tag,"."));
switch($extension){
case ".gif":
$filedata['type'] = "image/gif";
break;
case ".gz":
$filedata['type'] = "application/x-gzip";
break;
case ".htm":
$filedata['type'] = "text/html";
break;
case ".html":
$filedata['type'] = "text/html";
break;
case ".jpg":
$filedata['type'] = "image/jpeg";
break;
case ".tar":
$filedata['type'] = "application/x-tar";
break;
case ".txt":
$filedata['type'] = "text/plain";
break;
case ".zip":
$filedata['type'] = "application/zip";
break;
default:
$filedata['type'] = "application/octet-stream";
break;
}
return $filedata;
}
}
?>
Ⅹ 如何查看郵件的源代碼/方法技巧
由於各種郵件客戶端軟體或Web方式的不同,仔豎造成查看的途徑各有差異。
比如, Foxmail
第一步:選中郵件,滑鼠右擊郵件的主題,在下拉菜單中選擇「原始信息(Ctrl+I)...」,如下圖:
第二步:在打開的「原始信息」窗口首先看到郵件頭的信息,點擊念鍵大「全部」可看完整源碼。
其他的,亮襲你可以網路一下。