Bot image for ChatGPT

Shared conversation

ChatGPT ·

html 创建一个表格 输入 xxx 点击按钮获取 https://mailsac.com/api/addresses/[email protected]/messages json 内容,将其中所有的 _id 拼接为 https://mailsac.com/api/text/[email protected]/[_id] 输出其中的内容至 textarea

以下是一个基于 HTML 和 JavaScript 的实现,可以根据输入的邮箱地址获取该邮箱中的所有邮件信息,并将其中所有邮件的 _id 拼接为链接,输出链接对应的邮件内容至 textarea 中:

html
<!DOCTYPE html>
<html>
<head>
	<title>获取邮箱中的邮件内容</title>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
	<h1>获取邮箱中的邮件内容</h1>
	<p>请输入邮箱地址:</p>
	<input type="text" id="email" placeholder="请输入邮箱地址">
	<button onclick="getEmailContent()">获取邮件内容</button>
	<p>邮件内容:</p>
	<textarea id="content" rows="10" cols="50"></textarea>
	<script>
		function getEmailContent() {
			var email = document.getElementById("email").value.trim();
			if (email == "") {
				alert("请输入邮箱地址!");
				return;
			}
			var url = "https://mailsac.com/api/addresses/" + email + "@dismail.rr.nu/messages";
			$.getJSON(url, function(data) {
				var ids = "";
				for (var i = 0; i < data.length; i++) {
					ids += data[i]._id + ",";
				}
				if (ids == "") {
					alert("该邮箱中没有邮件!");
					return;
				}
				ids = ids.substring(0, ids.length - 1);
				var content = "";
				var idArr = ids.split(",");
				for (var i = 0; i < idArr.length; i++) {
					var id = idArr[i];
					var mailUrl = "https://mailsac.com/api/text/" + email + "@dismail.rr.nu/" + id;
					$.ajax({
						url: mailUrl,
						async: false,
						success: function(data) {
							content += "邮件 " + (i + 1) + ":" + data + "\n\n";
						}
					});
				}
				document.getElementById("content").value = content;
			});
		}
	</script>
</body>
</html>

具体实现思路如下:

  1. 在 HTML 中定义一个输入框和一个按钮,用于输入邮箱地址和触发获取邮件内容的操作。

  2. 在 JavaScript 中,使用 jQuery 的 getJSON 方法调用邮件服务提供商的 API,获取指定邮箱地址中的邮件信息。

  3. 将获取到的邮件信息中的 _id 拼接成一个字符串,用逗号分隔。

  4. 对于每一个 _id,使用 jQuery 的 ajax 方法调用邮件服务提供商的 API,获取对应链接中的邮件内容,并将其拼接到一个字符串中。

  5. 最后,将拼接好的邮件内容输出到页面上的文本框中。

需要注意的是,在获取邮件内容的过程中,我们使用了同步的 Ajax 请求,因为我们需要确保每个邮件的内容都被获取到后才能将它们拼接起来。如果使用异步的 Ajax 请求,在拼接邮件内容时可能会出现顺序不一致的情况,从而导致输出的邮件内容混乱。

其中 _id 有很多,将每个 _id 单独输出成一个 textarea

以下是一个修改后的实现,可以将每个邮件的 _id 对应的邮件内容单独输出为一个 textarea:

html
<!DOCTYPE html>
<html>
<head>
	<title>获取邮箱中的邮件内容</title>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
	<h1>获取邮箱中的邮件内容</h1>
	<p>请输入邮箱地址:</p>
	<input type="text" id="email" placeholder="请输入邮箱地址">
	<button onclick="getEmailContent()">获取邮件内容</button>
	<p>邮件内容:</p>
	<div id="content"></div>
	<script>
		function getEmailContent() {
			var email = document.getElementById("email").value.trim();
			if (email == "") {
				alert("请输入邮箱地址!");
				return;
			}
			var url = "https://mailsac.com/api/addresses/" + email + "@dismail.rr.nu/messages";
			$.getJSON(url, function(data) {
				var ids = "";
				for (var i = 0; i < data.length; i++) {
					ids += data[i]._id + ",";
				}
				if (ids == "") {
					alert("该邮箱中没有邮件!");
					return;
				}
				ids = ids.substring(0, ids.length - 1);
				var idArr = ids.split(",");
				for (var i = 0; i < idArr.length; i++) {
					var id = idArr[i];
					var mailUrl = "https://mailsac.com/api/text/" + email + "@dismail.rr.nu/" + id;
					$.ajax({
						url: mailUrl,
						async: false,
						success: function(data) {
							var content = "邮件 " + (i + 1) + ":\n\n" + data;
							$("#content").append("<p>" + content + "</p><textarea rows='10' cols='50'>" + data + "</textarea>");
						}
					});
				}
			});
		}
	</script>
</body>
</html>

具体实现思路如下:

  1. 在页面上定义一个空的 div 元素,用于存放所有的邮件内容。

  2. 在 JavaScript 中,使用 jQuery 的 getJSON 方法调用邮件服务提供商的 API,获取指定邮箱地址中的邮件信息。

  3. 将获取到的邮件信息中的 _id 拼接成一个字符串,用逗号分隔。

  4. 对于每一个 _id,使用 jQuery 的 ajax 方法调用邮件服务提供商的 API,获取对应链接中的邮件内容,并将其拼接成一个字符串。

  5. 将拼接好的邮件内容添加到页面的 div 元素中,同时在每个邮件内容后面添加一个对应的 textarea 元素,用于单独显示该邮件的内容。

需要注意的是,在输出每个邮件内容时,我们使用了 jQuery 的 append 方法,将邮件内容添加到页面上的 div 元素中,并在每个邮件内容后面添加了一个对应的 textarea 元素。这样就可以将每个邮件的内容单独输出为一个 textarea,并且保证 textarea 中的内容与页面上显示的内容一致。

需要认证 Mailsac-Key: YOUR_API_KEY_HERE

以下是一个修改后的实现,可以在请求 Mailsac API 时添加认证信息:

html
<!DOCTYPE html>
<html>
<head>
	<title>获取邮箱中的邮件内容</title>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
	<h1>获取邮箱中的邮件内容</h1>
	<p>请输入邮箱地址:</p>
	<input type="text" id="email" placeholder="请输入邮箱地址">
	<button onclick="getEmailContent()">获取邮件内容</button>
	<p>邮件内容:</p>
	<div id="content"></div>
	<script>
		function getEmailContent() {
			var email = document.getElementById("email").value.trim();
			if (email == "") {
				alert("请输入邮箱地址!");
				return;
			}
			var url = "https://mailsac.com/api/addresses/" + email + "@dismail.rr.nu/messages";
			var apiKey = "YOUR_API_KEY_HERE";
			$.ajax({
				url: url,
				headers: {
					"Mailsac-Key": apiKey
				},
				success: function(data) {
					var ids = "";
					for (var i = 0; i < data.length; i++) {
						ids += data[i]._id + ",";
					}
					if (ids == "") {
						alert("该邮箱中没有邮件!");
						return;
					}
					ids = ids.substring(0, ids.length - 1);
					var idArr = ids.split(",");
					for (var i = 0; i < idArr.length; i++) {
						var id = idArr[i];
						var mailUrl = "https://mailsac.com/api/text/" + email + "@dismail.rr.nu/" + id;
						$.ajax({
							url: mailUrl,
							headers: {
								"Mailsac-Key": apiKey
							},
							async: false,
							success: function(data) {
								var content = "邮件 " + (i + 1) + ":\n\n" + data;
								$("#content").append("<p>" + content + "</p><textarea rows='10' cols='50'>" + data + "</textarea>");
							}
						});
					}
				}
			});
		}
	</script>
</body>
</html>

具体实现思路如下:

  1. 在 JavaScript 中,定义一个变量 apiKey,用于存储 Mailsac API 的认证信息。

  2. 在调用 Mailsac API 时,在请求的 header 中添加认证信息,以确保请求能够被正确授权。

需要注意的是,在使用 Mailsac API 时,需要将 YOUR_API_KEY_HERE 替换为自己的 API 认证信息,以确保请求能够被正确授权。此外,在调用 Mailsac API 时,我们使用了 jQuery 的 ajax 方法,使用了异步的请求方式,以确保请求能够并发执行,从而提高程序的执行效率。

This conversation may have been edited by the sharer.

Bot image for ChatGPTTalk to ChatGPT on Poe