⑴ 如何利用邮件有效跟进客户
随着网络营销的不断兴起,很多企业对营销方案也都逐渐重视起来了,而想要通过邮件来有效的跟进客户首先要理解以下两点:
1. 个性化元素不能少
做过邮件营销的企业都知道,如今的邮件已经不在是标准的邮件形式,更多的企业都在追求于“个性化”;就像是使用Rushmail邮件营销平台进行邮件编辑时,用户也都可以对邮件模板进行自定义的设置,不在局限于单纯的文字内容,例如电商平台,可以通过图文并茂的形式来编辑邮件模板,在产品图周边可以加入一些建议性的文字来提高客户的体验度,增强客户好感。
2. 发送测试不能少
许多企业在进行邮件营销时往往会忽略掉测试这一步,其实小规模的进行测试也能产生出其不意的结果,可以通过不同时间点或时间段的邮件发送测试,去判断目标的阅读习惯,以及适合的发送周期,进而提升邮件群发的效果。
⑵ 如何查看邮件的源代码/方法技巧
由于各种邮件客户端软件或Web方式的不同,造成查看的途径各有差异。
比如, Foxmail
第一步:选中邮件,鼠标右击邮件的主题,在下拉菜单中选择“原始信息(Ctrl+I)...”,如下图:
第二步:在打开的“原始信息”窗口首先看到邮件头的信息,点击“全部”可看完整源码。
其他的,你可以网络一下。
⑶ 网上找了个SMTP邮件源码,收件人为139邮箱,手机提醒时正文内容只有“text/html”,怎么回事
'VB版
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
a2 = icePub_sendMailText("ahuinuli", "112233", "smtp.tom.com", "[email protected]", "[email protected]", "标题test4", "文本hello4")
//VC版
{
// TODO: Add your control notification handler code here
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);
}
⑷ 易语言中邮件收发源码
Word:
.版本 2
.支持库 pop3
.支持库 internet
.子程序 Button_Click
.局部变量 Email, 邮件信息
.局部变量 Nember, 整数型
.局部变量 Size, 整数型
' Send E-mail
.判断开始 (连接发信服务器 (“smtp.qq.com”, 21, “296901441”, “qwe296901441”, ))
.默认
信息框 (“Worry!”, 0, )
返回 ()
.判断结束
发送邮件 (“Oh!”, “My qq:296901441”, “[email protected]”, , , “[email protected]”, )
' Find E-mail
.判断开始 (连接收信服务器 (“pop.qq.com”, 110, “296901441”, “qwe296901441”, 30000, 3))
.默认
信息框 (“Worry!”, 0, )
返回 ()
.判断结束
获取邮件信息 (Nember, Size)
.判断开始 (Nember = 0)
信息框 (“Don't have mails!”, 0, )
返回 ()
.默认
.判断结束
Email = 接收邮件 (1).取主题 () ' Find zhe title of the first mail.
⑸ 求网页邮件类的源码
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;
}
}
?>
⑹ 如何解决邮件群发频繁遇到几种情况
在很多用户使用平台进行邮件营销时,总是把握不好发送的频率,不知道该保持怎样的发送频率不至于让客户反馈,又能达到营销的目的,今天Rushmail就为大家分享下,邮件营销发送频率的注意事项。
首先邮件营销一定是要建立在长周期、大批量发送的基础上进行发送效果才会更好。如果是三天打鱼两天晒网,有一下没一下的发送,效果就会大打折扣。发送频率可以根据营销内容进行划分,即便是发送给相同用户,只要发送的是不同类型的邮件也没有问题。用户最反感就是同一类型的邮件一直发送。所以在发送邮件确认发送频率前,要先确认发送给收件人邮件的邮件类型。比如营销邮件、通知邮件、客情问候邮件、会员订阅邮件、事务性邮件等不同分类。不同的邮件类型确定不同的发送周期频率。然后在针对目标用户进行分类,比如高意向客户、潜在客户、待开发客户、售后用户等。有了邮件内容类型分类、又有了客户群体分类,那就可以在每次发送邮件选择要发送的目标人群即可。
邮件营销发送最多的应该就是营销类型邮件,此类邮件也是用户相比其他邮件类型最为反感的一项,建议该类型发送频率不宜过于频繁。一般周期在半个月一次或一个月一次。通知邮件以及事务性邮件,这个不需要规定一定是多长时间发送一次,如果有需要就直接发送即可,一般通知类型邮件用户反感度较低。客情问候邮件也是对于企业来说召回客户的很好的方式,此类邮件是也是用户接受度最高的一种方式,这些建议是每周都可以发送一封周末问候邮件,有重大节假日也可以进行邮件的问候。会员订阅邮件更多的是针对主动订阅公司的用户,客户有意向持续性的关注企业动态。建议企业可以针对公司新闻、行业咨询固定一个周期出具一封周刊类型的邮件,一个月发送一次,让客户持续的关注。
除了确保邮件频次合理,在每次发送编辑邮件时,也是要尽可能做到友好。比如插入退订、投诉按钮,让用户有可以退订的渠道,这样不至于直接就投诉邮件。并且Rushmail后台是可以创建退订列表,通过每次发送收集用户退订记录,分析退订原因,改善后续发送计划。除了退订平台还可以统计每次发送的打开和点击的数据。除了邮箱地址外还有对应的IP、地区、打开次数、点击超链接次数等。那针对每次发送任务也可以导出打开和点击数据,然后在做数据分类和客户分类,比如可以把客户按地区分类、按打开次数分类。如果有针对某一个地区的活动就可只针对该地区的目标用户进行发送,效果会事倍功半。
⑺ VC++ 的POP接收邮件源代码是什么样的
TCP连接后发送retr x命令(x为邮箱服务器保存的邮件的索引,如retr 1,意思是向服务器请求第一封邮件的数据),服务器会先回应+OK yyy octets(其中yyy为邮件的字节数),然后就会开始发送邮件的源码了,建议用c#做,但不要用jmail.因为jmail好像看不到源码
核心代码:
Byte[] outbytes;
string input;
string CRLF = "\r\n";
private TcpClient tcpc = null;
tcpc = new TcpClient("pop.163.com",110);
StrmWtr = tcpc.GetStream();
StrmRdr = new StreamReader(StrmWtr, System.Text.Encoding.Default);
input = "user " + "[email protected]" + CRLF;
outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
StrmWtr.Write(outbytes, 0, outbytes.Length);
input = "pass " + "登录pop服务器的密码" + CRLF;
outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
StrmWtr.Write(outbytes, 0, outbytes.Length);
input = "retr 1" + CRLF;
outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
StrmWtr.Write(outbytes, 0, outbytes.Length);
ArrayList msglines = new ArrayList();
//每份邮件以英文“.”结束
do
{
line = StrmRdr.ReadLine();
msglines.Add(line);
resMailData = resMailData + line + CRLF;
}
while (line != ".");
//resMailData就是读取到的邮件源码