发送电子邮件应注意事项

发送电子邮件的注意事项

关于主题

主题要提纲挈领,添加邮件主题是电子邮件和信笺的主要不同之处,在主题栏里用短短的几个字概括出整个邮件的内容,便于收件人权衡邮件的轻重缓急,分别处理。

1.一定不要空白标题,这是最失礼的。

2.标题要简短,不宜冗长,不要让outlook用?才能显示完你的标题。

3.. 最好写上来自**公司的邮件,以便对方一目了然又便于留存,时间可以不用注明,因为一般的邮箱会自动生成,写了反而累赘。

4. 标题要能真反映文章的内容和重要性,切忌使用含义不清的标题,如 “王先生收”。也不要用胡乱无实际内容的主题,例如:“嘿!”或是“收着!”

5.一封信尽可能只针对一个主题,不在一封信内谈及多件事情,以便于日后整理

6.可适当用使用大写字母或特殊字符(如“* !”等)来突出标题,引起收件人注意,但应适度,特别是不要随便就用“紧急”之类的字眼。

7.回复对方邮件时,应当根据回复内容需要更改标题,不要RE RE一大串。

8、最最重要的一点,主题千万不可出现错别字和不通顺之处,切莫只顾检查正文却在发出前忘记检查主题。主题是给别人的第一印象,一定要慎之又慎。 关于称呼与问候

1. 恰当地称呼收件者,拿捏尺度

邮件的开头要称呼收件人。这既显得礼貌,也明确提醒某收件人,此邮件是面向他的,要求其给出必要的回应;在多个收件人的情况下可以称呼大家、ALL。 如果对方有职务,应按职务尊称对方,如“x经理”;如果不清楚职务,则应按通常的“x先生”、“x小姐”称呼,但要把性别先搞清楚。

不熟悉的人不宜直接称呼英文名,对级别高于自己的人也不宜称呼英文名。称呼全名也是不礼貌的,不要逮谁都用个“Dear xxx”,显得很熟络。

关于格式,称呼是第一行顶格写。

2. Email开头结尾最好要有问候语

最简单的开头写一个“HI”,中文的写个”你好”或者“您好”,开头问候语是称呼换行空两格写。

结尾常见的写个Best Regards,中文的写个”祝您顺利”之类的也就可以了,若是尊长应使用“此致敬礼”。注意,在非常正式的场合应完全使用信件标准格式,“祝”和“此致”为紧接上一行结尾或换行开头空两格,而“顺利”和“敬礼”为再换行顶格写。

俗话说得好,“礼多人不怪”,礼貌一些,总是好的,即便邮件中有些地方不妥,对方也能平静的看待

正文

1. Email正文要简明扼要,行文通顺

若对方不认识你,第一件应当说明的就是自己的身份,姓名或你代表的企业名是必须通报的以示对对方的尊重,点名身份应当简洁扼要,最好是和本邮件以及对方有关,主要功能是为了收件人能够顺利地理解邮件来意。不可没头没脑就是正事,别人不知道你是谁还得拉到最后看。但也不可过多,有些联系方式之类与正文无关的信息应在签名档中表明。

Email正文应简明扼要的说清楚事情;如果具体内容确实很多,正文应只作摘要介绍,然后单独写个文件作为附件进行详细描述。

正文行文应通顺,多用简单词汇和短句,准确清晰的表达,不要出现让人晦涩难懂的语句。最好不要让人家拉滚动条才能看完你的邮件,千万不要学唐僧。

2. 注意Email的论述语气

根据收件人与自己的熟络程度、等级关系;邮件是对内还是对外性质的不同,选择恰当的语气进行论述,以免引起对方不适。

尊重对方,请、谢谢之类的语句要经常出现。

电子邮件可轻易地转给他人,因此对别人意见的评论必须谨慎而客观。 “邮件门”就是深刻的教训!

3. Email正文多用1234之类的列表,以清晰明确。

如果事情复杂,最好1、2、3、4的列几个段落进行清晰明确的说明。保持你的每个段落简短不冗长,没人有时间仔细看你没分段的长篇大论。

4. 一次邮件交待完整信息

最好在一次邮件中把相关信息全部说清楚,说准确。不要过两分钟之后再发一封什么“补充”或者“更正”之类的邮件,这会让人很反感。

5. 尽可能避免拼写错误和错别字,注意使用拼写检查

这是对别人的尊重,也是自己态度的体现。如果是英文Email,最好把拼写检查功能打开; 如果是中文Email,注意拼音输入法带给你的弱智同音别字。 在邮件发送之前,务必自己仔细阅读一遍,检查行文是否通顺,拼写是否有错误。

6. 合理提示重要信息

不要动不动就用大写字母、粗体斜体、颜色字体、加大字号等手段对一些信息进行提示。合理的提示是必要的,但过多的提示则会让人抓不住重点,影响阅度。

7. 合理利用图片,表格等形式来辅助阐述

对于很多带有技术介绍或讨论性质的邮件,单纯以文字形式很难描述清楚。如果配合图表加以阐述,收件人一定会表扬你的体贴。

8. 不要动不动使用 :) 之类的笑脸字符,在商务信函里面这样显得比较轻佻 Business Email 不是你的情书,所以:)之类的最好慎用。只用在某些你确实需要强调出一定的轻松气氛的场合,比如现在-:)

附件

1. 如果邮件带有附件,应在正文里面提示收件人查看附件

2. 附件文件应按有意义的名字命名,最好能够概括附件的内容,方便收件人下载后管理

3. 正文中应对附件内容做简要说明,特别是带有多个附件时

4. 附件数目不宜超过4个,数目较多时应打包压缩成一个文件

5. 如果附件是特殊格式文件,因在正文中说明打开方式,以免影响使用 6. 如果附件过大(不宜超过2MB),应分割成几个小文件分别发送,

语言的选择和汉字编码

1. 只在必要的时候才使用英文邮件

英文邮件只是交流的工具,而不是用来炫耀和锻炼英文水平的。如果收件人中有外籍人士,应该使用英文邮件交流;如果收件人是其他国家和地区的华人,也应采用英文交流,由于存在中文编码的问题,你的中文邮件在其他地区可能显示成为乱码天书。

2. 尊重对方的习惯,不主动发起英文邮件

如果对方与你的邮件往来是采用中文,请不要自作聪明的发送英文邮件给他;如果对方发英文邮件给你,也不要老土的用中文回复。

3. 对于一些信息量丰富或重要的邮件,建议使用中文。你很难保证你的英文表达水平或收件人中某人的英文理解水平存在问题,而影响邮件所涉及问题的解决。

4. 选择便于阅度的字号和字体

中文老实点用宋体或新宋体,英文就用Verdana 或 Arial 字型,字号用五号或10号字即可。这是经研究证明最适合在线阅度的字号和字体。

不要用稀奇古怪的字体或斜体,最好不用背景信纸,特别对公务邮件。 不要为突出内容而将字号设置过大,拉滚动条是很麻烦的事情;也不要过小,费神又伤眼睛。

结尾签名

每封邮件在结尾都应签名,这样对方可以清楚的知道发件人信息。虽然你的朋友可能从发件人中认出你,但不要为你的朋友设计这样的工作。 1. 签名信息不宜过多

电子邮件消息末尾加上签名档是必要的。签名档可包括姓名、职务、公司、电话、传真、地址等信息,但信息不宜行数过多,一般不超过4行。你只需将一些必要信息放在上面,对方如果需要更详细的信息,自然会与你联系。 引用一个短语作为你的签名的一部分是可行的,比如你的座右铭,或公司的宣传口号。但是要分清收件人对象与场合,切记一定要得体。

2. 不要只用一个签名档

对内、对私、对熟悉的客户等群体的邮件往来,签名档应该进行简化。过于正式的签名档会让与对方显得疏远。你可以在OUTLOOK中设置多个签名档,灵活调用。

 

第二篇:发送电子邮件的代码

#include<afxsock.h>

#include"MailMessage.h"

//SMTP服务器标准端口号

#define SMTP_PORT 25

//定义接受缓冲区大小

#define RESPONSE_BUFFER_SIZE 1024

Class CSMTP

{

Public:

CSMTP(LPCTSTR szSMTPServerName,UINT nPort=SMTP_PORT);

virtual~CSMTP();

//记录服务器属性的接口

void SetServerProperties(LPCTSTR szSMTPServerName,UINT nPort=SMTP_PORT ); CString GetLastError();

UINT GetPort();

//与服务器的联系函数

BOOL Disconnect();

BOOL Connect();

//解释收到的回应信息

Virtual BOOL FormatMailMessage(CMailMessage*msg);

BOOL SendMessage(CMailMessage*msg);

CString GetServerHostName();

//连接是阻塞式的,因此要提供取消通信的方法

void Cancel();

private:

//处理获得的回应信息

BOOL get_response(UINT response_expected);

//处理邮件正文

CString cook_body(CMailMessage*msg);

CString m_sError;

BOOL m_bConnected;

UINT m_nPort;

CString m_sSMTPServerHostName();

//与SMTP服务器通信的套接字

CSocket m_wsSMTPServer;

Protected:

//发送邮件消息

virtual BOOLtransmit_message(CMailMessage*msg);

struct response_code

{

//如果没有得到回应信息,则给出出错信息 UINT nResponse;

TCHAR* sMessage;

};

enum eResponse

{

GENERIC_SUCCESS=0,

CONNECT_SUCCESS,

DATA_SUCCESS,

QUIT_SUCESS,

//LAST_RESSONSE 是最后一个元素

LAST_RESSONSE

};

TCHAR *response_buf;

Static response_code response_table[];

};

Viod CMailDlg::OnSend()

{

//获得用户填入的信息

CString strServerAddress,strFrom,strTo,strCopyTo; CString strSend,strTitle,strContent;

GetDlgItemText(IDC_EDIT_SMTP,strServerAddress); GetDlgItemText(IDC_EDIT_FROM,strFrom); GetDlgItemText(IDC_EDIT_TO,strTo);

GetDlgItemText(IDC_EDIT_CC,strCopyTo); GetDlgItemText(IDC_EDIT_BCC,strSend); GetDlgItemText(IDC_EDIT_SUBJECT,strTitle); GetDlgItemText(IDC_EDIT_BODY,strContent);

If (strTo.IsEmpty())

{

//收信人地址为空

AfxMessageBox(_T("请填写收信人地址")); Return;

}

If(strTitle.IsEmpty())

{

//主题栏为空

AfxMessageBox(_T("主题栏不应为空"));

Return;

}

If(strContent.IsEmpty())

{

//信件内容为空

AfxMessageBox(_T("这是空邮件"));

Return;

}

If(strServerAddress.IsEmpty())

{

//服务器地址栏为空

AfxMessageBox(_T("请填写邮件服务器的IP地址")); Return;

}

//告诉用户正在处理邮件

BeginWaitCursor();

//不再接受消息

This->EnableWindow(FALSE);

//开始发送邮件

CMIMEMessage msg;

CSMTP smtp(strServerAddress);

//初始化邮件消息体

msg.m_sFrom=strFrom;

msg.m_sSubject=strTitle;

msg.m_sBody=strContent;

//处理多个收信人地址的情况

msg.AddMultipleRecipients(strTo);

//处理附件

int nCount=m_listFile.GetCount();

CString strFileName;

for(int nIndex=0;nIndex<nCount;nIndex++)

{

m_listFile.GetText(nIndex,strFileName);

//利用在SMTP消息体里的MIME发送附件 msg.AddMIMEPart(strFileName);

}

//与服务器建立联系

If(!smtp.Content())

{

//无法建立连接

AfxMessageBox(_T("与服务器联系不上!"));

//重新开始接收消息

this->EnableWindow(TRUE);

EndWaitCursor();

}

//发送邮件见消息体

If(!smtp.SendMessage(&msg))

{

//邮件发送不成功

MessageBox(smtp.GetLastError());

EndWaitCursor();

}

else

{

AfxMessageBox(_T("邮件已发送!")); }

//与服务器断开连接

smtp.Disconnect();

//重新开始接收消息

this->EnableWindow(TRUE);

EndWaitCursor();

}

准备工作完成,开始发送邮件

首先与服务器建立连接

//定义存放主机名的的缓冲区大小

#define HOSTNAMELENGTH 88

BOOL CSMTP::Connect()

{

CString sHello;

TCHAR local_host[HOSTNAMELENGTH];

//如果已经建立连接则返回

if(m_bConnected)

Return TRUE;

Response_buf=new TCHAR[RESPONSE_BUFFER_SIZE];

if(response_buf==NULL)

{

m_sError=_T("内存不足");

Return FALSE;

}

if(!m_wsSMTPServer.Create())

{

//建立套接字失败

m_sError=_T("无法创建套接字");

delete response_buf;

response_buf=NULL;

return FALSE;

}

If(!m_wsSMTPServer.Connect(GetServerHostName(),GetPort())) {

m_sError=_T("无法与服务器建立连接!");

m_wsSMTPServer.Close();

delete response_buf;

response_buf=NULL;

return FALSE;

}

If(!get_response(CONNECT_SUCCESS))

{

//接受应答信息失败

m_sError=_T("服务器没有回答!");

m_wsSMTPServer.Close();

delete response_buf;

response_buf=NULL;

return FALSE;

}

Gethostname(local_host,HOSTNAMELENGTH);

//以HELLO命令开始发信

sHello.Format(_T("HELLO %s\r\n"),local_host);

m_wsSMTPServer.Send((LPCTSTR)sHello,sHello.GetLength());

If(!get_response(GENERIC_SUCCESS))

{

//获得应答信息失败

m_wsSMTPServer.Close();

delete response_buf;

response_buf=NULL;

return FALSE;

}

m_bConnected=TRUE;

return TURE;

}

BOOL CSMTP::SendMessage(CMailMessage*msg) {

If(msg==NULL)

{

//msg为空时没有意义的

retun FALSE;

}

//如果还没有建立连接

If(!m_bConnected)

{

m_sError=_T("还未与服务器建立连接"); retun FALSE;

}

If(!formatMailMessage(msg))

{

//如果调准消息体的格式不成功

retun FALSE;

}

If(!transmit_message(msg))

{

//如果消息体发送不成功

retun FALSE;

}

return TRUE;

}

BOOL CSMTP::FormatMailMessage(CMailMessage*msg) {

If(msg==NULL)

{

//msg为空时没有意义的

retun FALSE;

}

If(!msg->GetNumRecipients(TO))

{

m_sError=_T("No Recipients");

retun FALSE;

}

//在CMailMessage中封装了“格式化”消息的功能 msg->FormatMessage();

return TRUE;

}

void CMailMessage::FormatMessage()

{

start_header();

prepare_header();

end_header();

prepare_body();

}

void CMailMessage::start_header()

{

m_sHeader=_T("");

}

void CMIMEMessage::prepare_header()

{

CString strTemp;

//由基类的函数来添加邮件头

CMailMessage::prepare_header();

//这里只添加MIME头

add_header_line(_T("MIME-Version:1.0"));

strTemp.Format(_T("Content-Type: %s;boundary=%s"), (LPCTSTR) m_sMIMEContentType, (LPCTSTR) m_sPartBoundary); add_header_line((LPCTSTR) strTemp);

}

//创建邮件头

void CMailMessage::prepare_header()

{

CString strTemp=_T("");

//发信人的地址部分

strTemp=_T("From:")+m_sFrom;

add_header_line((LPCTSTR) strTemp);

//收信人地址部分

strTemp=_T("To:");

CString strEmail=_T("");

CString strFrend=_T("");

//逐个处理收信人

int nCount=GetNumRecipients();

for(int=0;i<nCount;i++)

{

GetRecipient(strEmail,strFriend,i);

strTemp += (i>0 ? _T(","):_T(""));

strTemp += strFriend;

strTemp += _T("<");

strTemp += strEmail;

strTemp += _T(">");

}

add_header_line((LPCTSTR) strTemp);

//处理日期,日期格式为Fri,21 Dec 01 21:51:30

m_tDateTime = m_tDateTime.GetCurrentTime();

strTemp = _T("Date");

strTemp += m_tDateTime.Format("%a, %d %b %y %H:%M:%S %Z"); add_header_line((LPCTSTR) strTemp);

//处理主题部分

strTemp = _T("Subject: ") + m_sSubject;

add_header_line((LPCTSTR) strTemp);

}

处理正文部分

void CMIMEMessage::prepare_body()

{

//将正文内容添加到邮件中

if(m_sBody !=_T(""))

AddMIMEPart((LPCTSTR)m_sBody,TEXT_PLAIN,"",_7BIT,FALSE);

//初始化MIME体

m_sBody = m_sNoMIMEText;

m_sBody += _T("\r\n\r\n");

//加入附件的内容

append_mime_parts();

insert_message_end(m_sBody);

//基类函数为正文加上结束符

CMailMessage::prepare_body();

}

void CMailMessage::prepare_body()

{

//加上必要的结束符CR/LF

if( m_sBody.Right(2)!=_T("\r\n"))

m_sBody += _T("\r\n");

}

BOOL CSMTP::transmit_message(CMailMessage*msg)

{

CString strFrom,strTo,strTemp,strEmail;

if( msg == NULL)

return FALSE;

if( !m_bConnected)

{

//若还未建立连接

m_sError = _T("请先建立连接");

return FALSE;

}

//发送mail命令

strFrom.Format(_T("MAIL From: <%s>\r\n"),(LPCTSTR)msg->m_sFrom); m_wsSMTPServer.Send((LPCTSTR)strFrom,strFrom.GetLength()); if(!get_response(GENERIC_SUCCESS))

return FALSE;

//发送RCPT命令

for(int i=0;i<msg->GetNumRecipients();i++)

{

msg->GetRecipients(strEmail,strTemp,i);

strTo.Format(_T("RCPT TO:<%s>\r\n"),(LPCTSTR)strEmail);

m_wsSMTPServer.Send((LPCTSTR)strTo,strTo.GetLength());

get_response(GENERIC_SUCCESS);

}

//发送DATE命令

strTemp = _T("DATE\r\n ");

m_wsSMTPServer.Send((LPCTSTR)strTemp,strTemp.GetLength());

if(!get_response(DATE_SUCCESS))

{

//发送DATE命令失败

return FALSE;

}

//发送邮件头

m_wsSMTPServer.Send((LPCTSTR)msg->m_sHeader,msg->m_sHeader.GetLength());

//发送邮件正文

strTemp = cook_body(msg);

m_wsSMTPServer.Send((LPCTSTR)strTemp,strTemp.GetLength());

//给邮件正文加上结束标志

strTemp = _T("\r\n.\r\n");

m_wsSMTPServer.Send((LPCTSTR)strTemp,strTemp.GetLength());

if(!get_response(GENERIC_SUCCESS))

{

return FALSE;

}

return TRUE;

}

相关推荐