问题:
自己用 javamail 开发的邮件客户端无法发送 21cn.com 的邮件,但收取正常。发送时,返回如下错误:
553 this mail is rejected by antispam system, id=FREE-AS6-SMTP.30083.1293423367&date=2010122712
解决方法:
设置邮件头的“X-Mailer”属性的值,设置为邮件客户端的名称。设置这个属性时要注意,不要把值直接设为 outlook express 等邮件客户端对应的值,如“Microsoft Outlook Express 6.00.2900.3664”。否则邮件可能无法发送。最好把这个值设为一些自己的定义的名字,如我的就设为“EXC Mail Sender 1.0”。
我在测试时发现这样一个情况:我通过捕捉网络数据包,找到 outlook express 发送邮件时,把邮件的“X-Mailer”设置为:“Microsoft Outlook Express 6.00.2900.3664”,然后直接把这个值设在我的程序中,发现邮件依然发送不成功。仔细研究后发现,21cn邮局竟然在检测到邮件客户端为 outlook express 后,就会再次检测邮件的分隔符,即“boundary”的值。如果分隔符是类似于:...NextPart.... 这种格式(outlook 的邮件分隔符),则能正常发送;而 javamail 发送时,使用的分隔符是类似于: ...Part... 这种格式,即,缺少“Next”字样,这时,21cn邮局就会把邮件当做垃圾邮件而拒绝。这种检测堪称诡异!无语……
分享到:
相关推荐
这个压缩包包含的源代码示例展示了如何使用JavaMail API通过QQ邮箱发送邮件,这对于开发者来说是一个实用的工具,尤其是在开发用户注册验证或通知功能时。让我们深入探讨一下JavaMail的核心概念以及如何使用它与QQ...
总结来说,JavaMail为Java开发者提供了强大且灵活的邮件处理能力,使得实现邮箱验证和找回密码等功能变得简单而可靠。通过深入理解和熟练运用JavaMail,你可以构建更加安全、用户体验良好的Web应用。
【JavaMail在Android邮箱项目中的应用】 JavaMail是一款强大的邮件处理API,它为开发者提供了在Java应用程序中发送、接收和管理电子邮件的能力。在Android平台上,JavaMail被广泛用于开发电子邮件客户端应用,允许...
在Android平台上进行邮箱服务的开发时,JavaMail是一个不可或缺的工具。JavaMail是一个开源库,它为Java应用程序提供了访问邮件服务器的标准API。本资源提供的"Android使用JavaMail开发邮箱最新jar包集合"包含了开发...
这个库支持多种邮件协议,如 SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和 IMAP(因特网消息访问协议)用于接收邮件。在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量...
JavaMail 是一个强大的开源库,用于在 Java 应用程序中处理电子邮件通信。这个库提供了丰富的功能,包括发送、接收邮件以及操作邮件附件等。在JavaMail中,我们主要使用 javax.mail 和 javax.mail.internet 包中的类...
本Demo将详细介绍如何使用JavaMail API来实现邮箱消息的推送。 首先,你需要在项目中引入JavaMail的相关依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.sun.mail</groupId>...
JavaMail API是由Sun Microsystems开发的一套API集合,它为Java应用程序提供了访问标准Internet邮件协议的能力,如SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol Version 3)和IMAP(Internet...
它支持 SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和 IMAP(因特网消息访问协议)用于接收邮件。在项目中,`javax.mail` 和 `javax.mail.internet` 包是主要使用的。 2. **SMTP 协议**: SMTP 是...
这个“JavaMail 1.6.0 Final Release”是 JavaMail 的一个重要版本,它包含了对 SMTP(简单邮件传输协议)、IMAP(因特网消息访问协议)和 POP3(邮局协议)的支持,这三种协议是电子邮件系统中的核心协议。...
通过不同的协议(如POP3Store或IMAPStore)可以访问不同类型的邮箱。 4. **Folder**:是Store的一个子集,表示邮箱中的文件夹,如"INBOX"(收件箱)或"Sent"(已发送)。Folder提供了打开、关闭以及读取邮件的方法...
相信许多人都有MSN聊天工具的帐号,例如abc@hotmail.com ,这个账号其实也是一个邮件地址,可以进行正常的邮件收发功能,你可以通过网址 http://www.hotmail.com 来访问和操作这个邮箱进行邮件的收发。但是这个邮箱...
- `*" pageEncoding="UTF-8"%>`:指定了JSP页面的编码格式为UTF-8,并导入了`java.util.*`包,使得页面能够访问这些包中的类。 - `<%@ taglib uri="/struts-tags" prefix="s" %> `:声明了对Struts标签库的支持,...
- JavaMail API 提供了一组接口和类,允许开发者在 Java 应用程序中方便地访问邮件服务器。它支持 SMTP (Simple Mail Transfer Protocol)、POP3 (Post Office Protocol version 3) 和 IMAP (Internet Message ...
某些邮件服务商如Gmail、Yahoo、Outlook等可能需要开启"不安全的应用程序访问"权限。 总的来说,JavaMail是一个强大的工具,使Java开发者能够轻松地集成邮件功能到他们的应用程序中。尽管设置过程可能涉及一些细节...
这个版本的API提供了丰富的功能,包括发送、接收邮件,管理邮箱,处理附件,以及支持多种邮件协议如SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。JavaMail API 1.4.7 是其官方发布的...
4. **邮件接收**:JavaMail通过POP3(邮局协议)或IMAP(Internet消息访问协议)协议接收邮件。使用`Store`接口建立连接,打开`Folder`,然后通过`Folder.getMessage()`方法获取邮件列表。邮件内容可以使用`...
它提供了访问用户邮箱的接口,可以获取`Folder`对象,进而读取、删除或管理邮件。`Folder`类提供了`open()`方法来打开邮箱,`getMessage()`方法获取单个邮件,`getMessages()`方法获取所有邮件,以及`addMessage()`...
3. 认证安全:如果使用的是第三方邮件服务(如Gmail),可能需要在服务提供商的账户设置中开启“不够安全的应用”的访问权限。 4. 测试环境:确保你的环境允许发送邮件,有些开发环境可能会阻止直接发送邮件。 ...