邮件客户端源码
Ⅰ 邮件发送程序客户端(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)...”,如下图:
第二步:在打开的“原始信息”窗口首先看到邮件头的信息,点击念键大“全部”可看完整源码。
其他的,亮袭你可以网络一下。