问题标签 [mailto]

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 投票
4 回答
8106 浏览

html - MailTo 链接中损坏的重音字符

我正在尝试创建一个包含法语重音字符作为主题和电子邮件正文的 mailto 链接。对字符进行编码的 HTML 和 URI 都不起作用。这是我的代码:

没有 URI 编码也会出现同样的结果:

不管我是怎么做的,新电子邮件都会以损坏的字符打开。URI 编码的空格和换行符可以正常工作,但任何不是 ANSI 的东西都会被破坏。我应该注意,我正在测试 MS Outlook 2007 的英语和法语版本。有人知道如何让它工作吗?

0 投票
4 回答
35367 浏览

java - 如何在java中打开电子邮件客户端并自动附加文件

可能重复:
Java:启动带有附件的邮件客户端?

我需要创建一个 java 代码来打开一个电子邮件客户端(Outlook、outlook express 等)并自动在其中附加一个文件。我尝试使用 mailto 但它只打开邮件客户端并且不附加文件。请帮忙。

多谢。

0 投票
3 回答
8324 浏览

c# - Mailto C# 附件语法

如何将文件附加到此 mailto 字符串?

这不起作用;该文件未附加。

0 投票
1 回答
151 浏览

webforms - 不使用电子邮件客户端从网页联系我

用一个简单的网络开发问题帮助一个菜鸟??

我想在我的网站上创建一个 Contact-Me 表单,但我希望它不要通过安装在用户机器上的电子邮件客户端,以防他们在公共终端上。我不介意邮件是从“我”发给“我”的,只要没有人可以用它来向我发送垃圾邮件!当我自己发送电子邮件时,有没有办法让它安全地使用它使用的 SMTP 服务器?(这是一个雅虎托管的网站,我有一个与之关联的雅虎电子邮件帐户。)

0 投票
7 回答
16951 浏览

internet-explorer - 与 Dojo 一起使用时 mailto 在 IE8 中导致空白页

出于某种原因,在 IE(确切地说是 Win 7 中的 IE8)中,当我单击 mailto 链接时,我最终会发现当前页面被地址栏中带有 mailto 的空白页面替换。

具体来说,当我单击 mailto 链接时会发生这种情况:

  1. 新的 about:blank 选项卡打开,并弹出一个安全提示,询问我是否要打开 Outlook。此时,看起来原来的选项卡仍然显示原来的页面。
  2. 当我单击“允许”或“不允许”时,新选项卡会关闭,原始页面会重新加载,地址栏中的 mailto。

如果我注释掉 dojo.xd.js 参考,它会按预期工作。

Firefox 和 Chrome 只是弹出 Outlook 新消息窗口。还在 Windows XP 和 IE7 上进行了测试和工作。

复制问题的代码是:

0 投票
2 回答
4032 浏览

mailto - 单击mailto链接时防止调用onbeforeunload

无论如何,在单击chrome中的mailto链接时,是否可以防止调用onbeforeunload。在 FF、Safari、IE 中运行良好。

0 投票
1 回答
15810 浏览

jquery - 使用 jQuery 获取所有 mailto 链接

我需要一个模式来遍历文档并获取所有在其 href 中包含 mailto 的链接:

我当然可以轻松获取所有a元素 ( $("a")) 并检查每个href属性以查看它是否指向 mailto,但我认为 jQuery 具有某种形式的模式匹配,可以让我做到这一点。

实现这一目标的最佳方法是什么?

0 投票
4 回答
5148 浏览

iphone - 使用 mailto 时出错:Mobile Safari 中的应用程序模式下的链接

我在网页中有一个表单,其操作是“mailto:email”(其中电子邮件是一个真实的电子邮件地址)。当我在 Mobile Safari 中以常规模式加载此页面时(即,不是从具有应用功能模式的主屏幕启动),这工作正常 - 在我提交表单后,电子邮件应用程序出现。但是,当我处于应用程序模式并从主屏幕启动(因此,没有 Safari 浏览器)并提交表单时,我收到错误“无法显示 URL”。但是,常规的 mailto: 链接(即,不在表单中)在 app-capable 模式下确实有效。

有没有其他人注意到这一点?任何解决方法?应用程序模式是否不允许使用表单?

谢谢,

伊丽莎白

0 投票
5 回答
42175 浏览

delphi - Delphi 程序如何通过默认电子邮件客户端发送带附件的电子邮件?

在我的程序中,我正在编写一封电子邮件以使用安装在用户计算机上的默认电子邮件客户端软件发送。

我已经编写了邮件地址、主题、多行正文,并且还有几个附件要包含在内。

我几乎使用 mailto 和 ShellExecute 完成了这项工作,如下所示:

在 Windows Vista 机器上使用 Delphi 2009,这将打开一个 Microsoft Mail“创建邮件”窗口,其中正确填写了收件人、主题和正文。但是该文件没有附加。

当我对此进行研究时,我注意到一些评论指出这种技术不适用于所有邮件客户端。但是,大多数评论都相当陈旧,因为我意识到这是一种非常古老的技术。

然后我发现Zarko Gajic说“这种方式还可以,但是你不能用这种方式发送附件”。

我还看到了 Windows 简单邮件 API (MAPI),但 Zarko 说只有在最终用户拥有符合 MAPI 的电子邮件软件时才有效。有很多关于在 Delphi 中使用 MAPI 的技术(例如使用 mapi 发送电子邮件),但它们都有免责声明 MAPI 并不总是随 Windows 一起安装。

此外,我真的希望消息首先出现在用户的默认电子邮件程序中,以便他们将其作为电子邮件记录的一部分,他们可以对其进行编辑并决定是否以及何时发送。我不确定 MAPI 是如何工作的,以及它是否会这样做。

所以我的要求是:

  1. 在用户的邮件程序中显示电子邮件。

  2. 允许一个或多个附件。

  3. 从 XP 以上(即 XP、Vista 或 7)的任何 Windows 机器上使用(希望)所有电子邮件客户端。

有这样的动物吗?或者也许有人知道如何使用 mailto/ShellExecute 技术获取附件?

大多数人做什么?


编辑:

MAPI 解决方案甚至是 Indy 解决方案都有一些答案。

我对他们的问题是他们不一定使用默认邮件客户端。例如,在我的 Vista 机器上,我已将 Windows Mail 设置为我的默认客户端。当我进行 MAPI 发送时,它不会启动 Windows Mail,而是会在 Outlook 中启动并设置电子邮件。我不想要那个。

我的程序的两个用户抱怨说:

您的调试例程无法发送文件,因为它尝试启动 Windows 邮件,原因是它自己知道的某种原因,而不是使用默认邮件客户端(在我的情况下为雷鸟)

我试图填写异常报告,但当它要求这台服务器,那台服务器时放弃了!然后我真的很生气,因为它启动了 Outlook - 我从来没有,曾经使用它或想要使用它。

我不需要 MAPI 或 Indy 的代码。它们很容易获得。但是,如果您建议使用 MAPI 或 Indy,我真正需要的是一种找到默认客户端并确保它是通过要发送的电子邮件的客户端。

另外,我需要知道 MAPI 现在是否通用。5 年前,不能保证它可以在所有机器上运行,因为它没有作为操作系统的一部分安装。这仍然是真的,还是默认情况下 MAPI 现在随 Windows XP、Vista 和 7 一起提供?

同样的问题也适用于 Indy 或任何其他建议的解决方案。它可以与默认客户端一起使用吗?它可以在几乎所有 Windows XP 和更高版本的机器上运行吗?

“mailto”解决方案之所以这么好,是因为所有机器都必须支持它才能处理网页上的 HTML mailto 语句。现在要是我能用它来添加附件就好了……


找到了可能的解决方案:mjustin 指出了一种利用操作系统的 sendto 命令的替代方案。这很可能是要走的路。

mailto 并不像 HTML mailto 那样被限制为 256 个字符,但我很震惊地发现它最终被限制为 2048 个字符。好在几个小时后,mjustin给出了答案。

如果实施顺利,他的回答将为我完成。如果没有,我会在这里添加我的评论。


不。事实证明,sendto 解决方案不会总是打开默认的电子邮件程序。在我的机器上,当我的默认邮件程序是 Windows Mail 时,它会打开 Outlook。太糟糕了。尽管有 2048 个字符的限制,但我不得不回到 mailto 方法。

但是,我确实在文章中找到了:SendTo 邮件收件人

此时,您可以使用经过深思熟虑的 ::WinExec 调用替换 ::ShellExecute,使用注册表中声明的实际 mailto 命令行并以当前电子邮件客户端为目标(例如,“%ProgramFiles%\Outlook Express\msimn .exe" /mailurl:%1)。但是限制是 32 KB。总而言之,没有办法使用 mailto 协议发送大于 32KB 的电子邮件。

但是我必须在每种情况下确定邮件客户端是谁。我预计这会导致进一步的并发症。

我发现的另一件事是 mailto 允许设置“to”、“cc”、“bcc”、“subject”和“body”,但不允许设置附件。而 sendto 只允许附件,然后设置带有默认消息的默认电子邮件,您无法设置各种字段和正文。

0 投票
6 回答
1148 浏览

php - php中的Mailto脚本

我是 PHP 新手,我想知道mailto脚本在 php 中是如何工作的?任何人都可以为此提供一个脚本吗?