WEB开发网
开发学院软件开发VC 利用JMail组件快速构建邮件程序(上) 阅读

利用JMail组件快速构建邮件程序(上)

 2010-06-29 20:42:30 来源:WEB开发网   
核心提示:2.2 发送HTML格式的邮件在这里我们需要完成的功能是发送一封带图像的HTML邮件,图像存储在本地邮件附件里,利用JMail组件快速构建邮件程序(上)(3),而不是通过远地链接,实现的关键是如何引用附件中的图像:在调用AddAttachment时它会返回一个称为content id的字串,例如:pMessage-&g

2.2 发送HTML格式的邮件

在这里我们需要完成的功能是发送一封带图像的HTML邮件,图像存储在本地邮件附件里,而不是通过远地链接,实现的关键是如何引用

附件中的图像:

在调用AddAttachment时它会返回一个称为content id的字串,比如它返回的是"AABBCCDD",则我们用<IMG SRC="cid:AABBCCDD">这种方式

来引用该图像,请看如下代码片断:

......
// 这里添加Body是为了使邮件浏览者在没有切换到HTML时给予提醒
pMessage->Body = "邮件采用HTML格式,请切换到HTML模式。\r\n";
// 添加附件
_bstr_t bstrCID = pMessage->AddAttachment("D:\\logo.gif", VARIANT_TRUE, "image/gif"); // 返回content id
// 根据content id 生成IMG HTML标记
char pImgHTML[200];
strcpy(pImgHTML, "<IMG SRC=''cid:");
strcat(pImgHTML, (char*)bstrCID);
strcat(pImgHTML, "''>");
// 添加HTML正文内容
pMessage->HTMLBody = "<H2>VC知识库</H2>";
pMessage->AppendHTML("<BR>www.VCKBASE.com ");
pMessage->AppendHTML(pImgHTML);
// 开始发送
pMessage->Send("", VARIANT_FALSE);

关于content id更详细的内容请阅读MIME协议

2.3 特殊邮件头的构造

To,From,Subject,Message-ID,Date,Received等是标准的邮件头,自定义邮件头会自动在前面加X, 例如X-Originating-IP

// 标准邮件头
pMessage->AddNativeHeader("Message-ID", "VCKBASE:ABCDEFG1234567");
pMessage->AddNativeHeader("Date", "1800-1-1");
// 自定义邮件头
pMessage->AddHeader("Originating-IP", "123.345.567.789"); // 给它个假冒伪劣IP
pMessage->AddHeader("Mailer", "MyMailBox 1.0"); // 邮件发送器名称
pMessage->AddHeader("Company", "MyCompany"); // 随便加点定制信息

有时收到邮件的时候会提示:发件人请求一个收条以表示你已经阅读过这封邮件,您愿意发送一个收条吗?

发送这样的信,我们只需要:

pMessage->AddNativeHeader("Disposition-Notification-To", "sender@domain.com");

sender@domain.com是回复收条的邮箱。

2.4 邮件服务器需要发信认证的处理

一些SMTP服务器需要认证信息,您需要在Send时提供用户名与密码,例如:

pMessage->Send("username:password@mailserver.com")

2.5 不通过SMTP中继服务器发送邮件

在发信时我们一般把信件提交给SMTP中继服务器,SMTP中继服务器负责和目标邮局联系,并最终将信件提交到收件人所在的邮件服务器。

在没有可利用的SMTP中继服务器时,我们可以将服务器名设置为空,例如:

pMessage->Send("", VARIANT_FALSE);

这样,组件会通过DNS查询目标域(例如:163.com)中的MX记录,直接将信件提交到MX记录中所指定的邮件服务器中。

上一页  1 2 3 4  下一页

Tags:利用 JMail 组件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接