使用Poco库在邮件中发送HTML代码
Sending HTML code in a mail using Poco library
我正在使用c++(1.5.2)中的POCO库,我想知道是否有可能在邮件中发送HTML代码。
这是我用来发送电子邮件的代码(通过我的gmail):
#include <iostream>
#include <string>
#include <PocoNetAcceptCertificateHandler.h>
#include <PocoNetFilePartSource.h>
#include <PocoNetInvalidCertificateHandler.h>
#include <PocoNetMailMessage.h>
#include <PocoNetNetException.h>
#include <PocoNetSecureSMTPClientSession.h>
#include <PocoNetSSLManager.h>
int main()
{
Poco::Net::MailMessage mailMessage;
mailMessage.addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::PRIMARY_RECIPIENT, "user1@gmail.com", "user1"));
mailMessage.setSubject("test");
mailMessage.setSender("myemail@gmail.com");
mailMessage.setContent("Hello, world!rn");
Poco::Net::SecureSMTPClientSession session("smtp.gmail.com", 587);
session.open();
Poco::Net::initializeSSL();
Poco::SharedPtr<Poco::Net::InvalidCertificateHandler> ptrHandler = new Poco::Net::AcceptCertificateHandler(false);
Poco::Net::Context::Ptr ptrContext = new Poco::Net::Context(Poco::Net::Context::CLIENT_USE, "", "", "", Poco::Net::Context::VERIFY_RELAXED, 9, true, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");
Poco::Net::SSLManager::instance().initializeClient(NULL, ptrHandler, ptrContext);
try
{
session.login();
if(session.startTLS(ptrContext))
{
session.login(Poco::Net::SecureSMTPClientSession::AUTH_LOGIN, "myemail@gmail.com", "mypassword");
session.sendMessage(mailMessage);
}
session.close();
Poco::Net::uninitializeSSL();
}
catch(Poco::Net::SMTPException &e)
{
std::cout << e.message() << std::endl;
session.close();
Poco::Net::uninitializeSSL();
}
system("pause");
return 0;
}
是否有任何解决方案发送图像在我的消息,例如?
谢谢!!
在填写电子邮件内容时尝试这样做:
#include <PocoNetStringPartSource.h>
#include <PocoNetFilePartSource.h>
#include <PocoNetMailMessage.h>
...
Poco::Net::MailMessage mailMessage;
mailMessage.addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::PRIMARY_RECIPIENT, "user1@gmail.com", "user1"));
mailMessage.setSubject("test");
mailMessage.setSender("myemail@gmail.com");
Poco::Net::MediaType mediaType("multipart", "related");
mediaType.setParameter("type", "text/html");
mailMessage.setContentType(mediaType);
std::string html = "<html><body>Hello, world!<br><img src="cid:image"></body></html>";
mailMessage.addPart("", new Poco::Net::StringPartSource(html, "text/html"), CONTENT_INLINE, ENCODING_QUOTED_PRINTABLE);
Poco::Net::FilePartSource *image = new Poco::Net::FilePartSource("image.jpg", "image/jpeg");
image->headers().add("Content-ID", "<image>");
mailMessage.addPart("", image, CONTENT_INLINE, ENCODING_BASE64);
相关文章:
- 如何从 doxygen 创建的 html 更改回代码
- Qt QNetworkAccessManager 或其他方法获取 html 状态代码而不获取页面 contenet
- 解析来自 HTML 代码C++的 URL
- Howto在QString中存储HTML代码时,默认浏览器中打开HTML页面
- 将字符串中的 č,š,ć 等字符替换为其 html 代码C++
- 是否可以触发由 Minko 中的 HTML 事件启动的 C++ 代码
- C++,如何在html代码中获得特定的字符串
- 以维基媒体格式或至少以HTML格式记录您的c / c ++代码
- 获取 html 代码时出错
- Native Client模块是否可以呈现由C++代码生成的HTML
- 是否有可能在Visual Studio c++项目中将Javascript和CSS代码与HTML代码分开?
- 用于查找标签/属性的正则表达式在HTML代码中
- 简体中文HTML代码
- 将c++代码与电子应用程序中的HTML画布挂钩
- c++显示HTML代码作为一个网站(CGI程序)
- c++代码结构转换成HTML文件
- ActiveX html控件未调用代码
- 如何将多媒体HTML/JavaScript应用嵌入到c++代码中
- C++从html代码中获取链接
- 使用Poco库在邮件中发送HTML代码