问题标签 [smtpclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
6692 浏览

delphi - 在 Delphi 中生成带有嵌入图像的 HTML 电子邮件

任何人都知道生成带有嵌入图像和替代文本部分的 HTML 电子邮件的好例子吗?我需要在 HTML 中生成一些表格报告,并希望嵌入徽标和其他图像。

我相信 Indy 可以通过一些工作来做到这一点,但我希望有人能给我指出一个很好的例子作为起点。我愿意使用 Indy 以外的库和商业解决方案,只要源代码可用。质量和实施时间比成本更重要。该解决方案还需要支持对邮件交换器的基于 SMTP 的传送。

我的愿望清单上的另一项是能够利用 FastReports、TRichView 或类似工具来生成 HTML 消息内容。两者都有可用的 HTML 输出过滤器,但我没有机会进行任何测试。对此主题的任何反馈将不胜感激。

提前致谢!

大卫

0 投票
2 回答
1919 浏览

email - SMTP:服务器间通信

据我所知,电子邮件发送过程如下所示:

  1. 消息从发件人的客户端发送到他的服务器(比如mail.com)。
  2. mail.com服务器将邮件重定向到收件人服务器(比如gmail.com)。
  3. 收件人的客户端连接到gmail.com并接收新消息。

我对第 2 阶段感兴趣。我认为服务器使用 SMTP 协议进行协商。并且gmail.com服务器应该监听 25 端口以接收来自mail.com和其他服务器的连接。

但后来我尝试在端口 25 上连接gmail.com(确切地说是 Google 服务),服务器没有响应......

为什么?怎么了?

0 投票
8 回答
7044 浏览

.net - System.Net.Mail 替代方案

我正在开发一个使用 C# 中的邮件服务器安排电子邮件的工具。我一直在使用 System.Net.Mail 类来发送邮件。

最近我遇到了关于违反 RFC 和其他问题的各种问题,例如 SmtpClient 没有根据协议结束 SMTP 会话。这些问题中的每一个都计入垃圾邮件的高分并影响电子邮件传递,因此我需要解决这些问题。

我想知道其他人为了解决这些问题采取了哪些措施。人们是否开始使用第三方组件,如果是,是哪一个?

编辑:作为支持证据,请参阅: http: //www.codeproject.com/KB/IP/MailMergeLib.aspx

0 投票
3 回答
3007 浏览

compact-framework - CF.NET SMTP/POP3 客户端

我正在开发一个针对 Windows 移动设备的订单输入应用程序。

我需要能够在应用程序中发送和接收电子邮件,但不使用袖珍 Outlook(这是客户要求)。

我看到 .net 邮件类不适用于紧凑型框架。所以我需要去别处看看。

我发现了 2 个有趣的库:CSLMail 和 MooseWorks 的电子邮件控件。但是没有一个能够处理 SSL 连接,这是强制性要求

我发现了一些支持紧凑框架的商业电子邮件组件套件,但它们的价格非常高(200 美元以上)。

我想我不是唯一一个遇到发送和接收电子邮件问题的人 - 所以,我的问题是:谁能建议我任何免费或低成本的 cf.net smtp/pop3 库

谢谢

0 投票
2 回答
17768 浏览

c++ - 使用 SMTPS (TLS) 通过 gmail (smtp.gmail.com) 发送电子邮件的开源库

注意:如果你没有时间阅读这个漫长的旅程,解决方案(附源代码)在这里: http: //www.coastrd.com/smtps

长期以来,通过远程邮件服务器(通常在网站托管公司)使用 SMTP(端口 25)发送电子邮件很容易使用应用程序完成。打开一个 TCP 端口 25,发送“HELO ...”等

要做到这一点,使用谷歌的电子邮件服务给了我一个问题,因为他们坚持使用端口 465 SMTPS,即带有 TLS 加密的 SMTP:

http://en.wikipedia.org/wiki/Transport_Layer_Security#How_it_works

在研究使用 C++ 之类的语言或基本风格的语言来做到这一点时,我遇到了:

http://forums.realsoftware.com/viewtopic.php?f=2&t=29542

http://forums.realsoftware.com/viewtopic.php?f=2&t=26959&p=162671#p162671

和一个 Python 问题:

python smtp gmail 身份验证错误(通过 gmail smtp 服务器发送电子邮件)

如果我理解正确,我将需要在我的 C++ 代码中实现 TLS 加密,并完成所有的握手和协商?

从 C# 问题:

在 C++ 中使用 gmail smtp(安全层)发送电子邮件

这个库不这样做

http://johnwiggins.net/jwsmtp/

添加:

很多人只是将 stunnel 安装为服务,然后将其配置为管理 SSL 连接

http://www.stunnel.org/about/

Stunnel 是一个 OpenSSL 包装器。OpenSSL 有一些性能问题(http://josefsson.org/gnutls4win/

“在某些系统上初始化 libgcrypt 需要很长时间,据报道可能需要大约 10 秒。”

并要求:“libeay32.dll”1.35MB +“libssl32.dll”310k +“zlib1.dll”75k

然后是几个商业产品:

http://www.chilkatsoft.com/downloads.asp

该产品主要以 Activex (COM)“dll”的形式提供(需要用户机器上的安装程序来“注册”dll - 另一个糟糕的 .net 想法)。

安装程序加载“ChilkatMime.dll”1.33Mb、“ChilkatCert.dll”1.26MB、“ChilkatUtil.dll”720k。开发人员根本没有兴趣在真正的 C .dll 库上进行合作,该库可以从任何语言(包括 C/C++/BASIC/Python 等)调用。鉴于他们的态度,我并不惊讶他们成为代码生成器的受害者由黑客。

除了俗气的名称和艺术品外,他们的产品价格合理,但我尝试过的产品尽管被告知使用端口 465,但仍连接到端口 25。

相比之下,催化剂的商业选择:

http://www.catalyst.com/products/sockettools/secure/library/index.html

现在可作为主要插座工具产品的组件以 1/3 的价格购买。这些工具是一流的!是的,你得到你所支付的。开发人员反应迅速并乐于接受建议。他们提供所有风格的 dll,包括一个独立的 .dll,它可以随您的产品一起提供,只有 230k!对于商业解决方案,他们赢得了胜利。

可以显式建立 SLL/TLS 连接(一旦握手开始看到)或隐式建立(在握手之后使用 STARTTLS 等)

例如,CodeIgniter 是隐式的(与 Python、asp、php 等中的选项一样) http://codeigniter.com/forums/viewthread/84689/

一旦建立连接,就会存在一个“隧道”,MIME 会话可以通过该“隧道”进行:

来自服务器的通常响应。

某些语言会为您处理 MIME 通信(套接字工具、codeigniter 等),您只需输入电子邮件主题、正文和地址,使其非常易于使用

CryptLib 是一个开源解决方案,它可以在仅 1MB(完整编译)中使用 C 风格的 .dll 促进 SSL/TLS 隧道。由于源代码可用,因此可以仅使用您需要的组件来编译 dll 的版本,而这些组件应该比这少一些。

http://www.cs.auckland.ac.nz/~pgut001/cryptlib/download.html

尽管我让库立即工作并询问 MIME 对话框,但作者反应非常迅速。有330页的手册!谢谢你。

该库不是 MTA(邮件传输代理),因此您必须编写上面的 MIME 对话,但它是免费的!

此处提供源代码:http: //www.coastrd.com/smtps

0 投票
1 回答
9453 浏览

c# - SmtpClient.SendAsync - 如何在触发回调之前停止应用程序退出?

我需要通过控制台应用程序异步发送电子邮件。我需要对回调进行一些数据库更新,但我的应用程序在回调代码运行之前退出!

我怎样才能以一种很好的方式阻止这种情况发生,而不是简单地猜测在退出之前要等待多长时间。我会想象异步调用被放置在某种形式的线程中?是否可以检查是否有任何等待被调用?

示例代码

0 投票
2 回答
3924 浏览

c# - 为什么不能使用同一个 SmtpClient 实例异步发送多封电子邮件?

锡纸上写着什么。

0 投票
2 回答
633 浏览

c# - 配对电子邮件事务和 ADO.NET 事务

是否可以将 C# 中的电子邮件发送(使用 SMTPClient)与 ADO.net 事务自动链接起来?

那么在发送邮件失败的情况下,ADO.NET 事务也会失败并自动回滚吗?

干杯

0 投票
1 回答
1657 浏览

c++ - C++ 中体面的 SMTP 客户端

我想在 C++ 中拥有一个体面的 SMTP 客户端库,并带有许可许可证(LGPL、BSD、MIT-X、...)。它必须至少符合 rfc821 和 rfc2487,最好符合 rfc3207。

我发现了一些不符合所有要求的:

  1. Poco SMTP
  2. DataReel SMTP
  3. 虚拟机

如果有的话,欢迎分享。谢谢!

0 投票
1 回答
690 浏览

c# - System.Net.Mail.SmtpClient.Send/Exchange 延迟

C# 应用程序使用 System.Net.Mail.SmtpClient.Send 发送电子邮件应用程序的日志文件显示 Send 方法在 11:39 成功当我在 Outlook 中打开电子邮件并执行 File|Properties 时,它显示 Sent: 11:39上午收到:上午 11:41

如果我去 View|Options ,标题显示: Received: from XXX by YYY with Microsoft SMTPSVC [...] 11:41:15 [...] Date: 9 Dec 2009 11:38:51 [... ] X-OriginalArrivalTime: [...] 11:41:15.0250

所以我的问题是 - 如果 Send 方法在 11:39 返回,但服务器仅在 11:41 收到它,那么这 2 分钟的电子邮件在哪里?换句话说,是否需要在运行应用程序的机器或 Exchange 服务器上进行配置?