senderjava的简单介绍
今天给各位分享senderjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java发送邮件时出现的错误,端口什么的都开了
- 2、Java中的几个关于文件流的问题.
- 3、java 发送邮件
- 4、java 中的管道流是怎么用的?它与不同的输入输出流的区别在哪里?
- 5、java发送邮件失败!
java发送邮件时出现的错误,端口什么的都开了
今天在做内网邮箱发送功能时报如下错误:
554 Relay rejected for policy reasons.
测试时给内容邮箱发送正常,给126发送就报如上错误,后来查看是权限限制的问题。
在网上查找到邮件发送时的常见问题总结,备注一下。
介绍邮件系统常见的错误代码及解释,还有客户端报错相关信息
按照下列“Q”代表问题,“A”代表解答。
Q:the server says:550 relaying mail to is not allowed
Q:The server says:550 ... relaying denied
Q:the server says:550 5.7.1 relaying not permitted:
A:使用某些Smtp服务器时,限制了收件人的地址,只能换一个Smtp服务器。
Q:The server says:550 :local user only
Q:The server says:550 :Invalid User
Q:The server says:550 Invalid recipient
A:使用163.NET,163.com,yeah.Net和netease.com之类的Smtp服务器时,只能用自身的信箱发信,所以要在Outlook Express的“帐户属性”中的“个人信息”里面填写正确的邮件地址。
Q:the server says:551 delivery not allowed to non-local recipient
Q:The server says:553 Relay restriction.
Q:The server says:553 From , message blocked.
Q:The server says:553 sorry,you are not allow to use this SMTP to relay your eami
Q:The server says:553 sorry, that domain isn't in my list of allowed rcpthosts
A:使用21cn.com,china.com,371.net,sina.com等大多数信箱的smtp服务器时,只能用自身的信箱发信,所以要在Outlook Express的“帐户属性”中的“个人信息”里面填写正确的邮件地址。
Q:The server says:505 client was not authenticated
Q:The server says:553 authentication is required to send mail as
A:使用263.net和sohu.com的Smtp服务器时,不但要用自身的邮箱发信,而且要加入身份验证,所以即要在“个人信息”中填写正确邮箱地址,又要选中“SMTP服务器需要认证”。
Q:The server says:535 Error:authenticatin failed
Q:The server says:535 Authentication unsuccessful
Q:The server says:452 Insufficient system storage
A:在使用Esmtp认证的过程中出错,检查一下Esmtp设置,多试几次。
Q:The server says:553 ...domain name required
Q:The server says:550 Unable to relay for ...
A:多出现在用Wingate代理服务器发送邮件时。虽然在Wingate中“POP3 邮箱帐号”要使用“用户名#POP3地址”的格式,但在“帐户属性”中的“个人信息”中还是要填写一般的格式。
Q:The server says:553 mailbox name not allowed
A:收件人邮箱地址不允许,需检查收件人地址是否正确。
Q:the server says:553 sorry, your envelop sender is in my badmailfrom list
A:服务器限制了收件人的地址,只能换一个smtp服务器发信。
Q:the server says:554 Transaction failed
Q:The server says:451 Requested action aborted,errno=28
A:传输失败,检查网络问题。
Q:the server says:503 error:needmail command
Q:The server says:503 need mail before RCPT.
Q:The server says:503 Bad sequence of commands
A:消息命令顺序出错,一般出现在其他错误之后,先检查之前出现的错误提示。
Q:The Server says:501 syntax.helo hostname
Q:The server says:501 Invalid domain name
Q:The server says:502 unimplemented command
Q:the server says:503 5.0.0 polite people say HELO first
Q:The server says:533 relay restriction
Q:The server says:544 :Recipient address rejected: Relay access denied
A:传输中的语法错误,原因不明。
连接服务器错误,请检查您的网络设置。如果安装防火墙/杀毒软件,请检查防火墙/杀毒软件是否允许DreamMail程序访问 Internet。
账号“xxx”发送邮件错误,错误代码:554;错误信息:554 Relay rejected for policy reasons.(检查邮件系统是否有发送外网邮箱的权限)
附相关资料
SMTP 有一组固定的响应代码,表示邮件服务器对于传送邮件要求的响应状况。其中 421、450、451、452、550、551、552、553、554 等 9 组代码表示您要求邮件服务器执行的动作不成功。
354
Start Mail input
开始传输邮件正文
421
domain Service not available, closing transmission channel
括号内的主机无法提供正常服务,关闭传送管道,邮件将滞留在主机上
440
邮件址错误
445
Server Rejected
被封锁
450
Client host rejected, Cannot resolve PTR
Temporary Process Error
Resource temporarily unaviable,please try again later
Requested mail action not taken: mailbox unavailable
无法 IP 反查
Requested mail action not taken: mailbox unavailable
所要求的邮件动作无法执行:邮件信箱无法提供服务,邮件将滞留在主机上
451
Domain of sender address sender@mail.com.tw does not resolve
qq trouble creating files in queue (#4.3.0)
queuename: Cannot create "qfCAA21081" in "/var/spool/mqueue" (euid=0): No space left on device
Requested action aborted, errno=28.
无法解析寄件者邮件地址
Requested action aborted: local error in processing
要求动作中断:本地端错误
Requested action aborted,errno=28
传送失败,检查网络问题。
452
Message for would exceed mailbox quota
Requested action not taken: insufficient system storage
要求动作无法执行:系统空间不足
Insufficient system storage
在使用Esmtp认证的过程中出错,检查一下Esmtp设置,多试几次。
454
Client was not authenticated
安全因素,被封锁
472
sender@mail.com.tw no DNS A-data returned
无法 IP 反查
501
Domain of sender address sender@mail.com.tw does not exist
无法 IP 反查
Mailbox not found
5.1.1 ... User unknown
无此使用者
Syntax error,parameters in command "RCPT TO:min@laohuyatse.com.tw"unrecognized or missing
no local part
Syntax error in recipient:
"@" or "." expected after "CC"
"@" or "." expected after "fau" :
email格式l错误
503
Either sender or receiver must be local account.
安全因素,权限不足
CAT@MAIL.FORTEK.COM.TW
无此使用者,不是本主机转送信件的使用者
error:needmail command
need mail before RCPT
Bad sequence of commands
消息命令顺序出错,一般出现在其他错误之后,先检查之前出现的错误提示。
5.0.0 polite people say HELO first
传输中的语法错误,原因不明
505
client was not authenticated
使用263.net和sohu.com的Smtp服务器时,不但要用自身的邮箱发信,而且要加入身份验证,所以即要在"个人信息"中填写正确邮箱地址,又要选中"SMTP服务器需要认证"。
521
This system is configured to reject mail from 211.20.70.148
安全因素,被封锁
535
Error:authenticatin failed
Authentication unsuccessful
在使用Esmtp认证的过程中出错,检查一下Esmtp设置,多试几次。
550
unknown user
User unknown
Invalid User
Recipient unknown
Mailbox disabled for this recipient
Unknown local part
Invalid recipient
Unable to relay for no such user
Recipient unknown
This account is not allowed
recipient unknown
No such mail drop defined,user disabled
I don't know
Relaying is prohibited
Relaying denied
relaying mail to is not allowed
... relaying denied
5.7.1 relaying not permitted:
REJECT SMTP Protocol Returned a Permanent Error 550 Forwarding percent hack is not permitted
Requested action not taken: mailbox unavailable
无此使用者,所要求动作无法执行:信箱不存在,邮件将退回给寄件者,或者限制了收件人的地址,只能换一个Smtp服务器。
System is busy
邮件系统错误
Subj similar too many!!
太多同主题信件
Relaying denied. IP name lookup failed
IP name lookup failed
DNS FAILURE
cannot route to sender address
无法 IP 反查
Relaying denied
Mailbox unavailable: This site may not be used as a relay agent.
无法转寄
:local user only
:Invalid User
Invalid recipient
使用163.net,163.com,yeah.net和netease.com之类的Smtp服务器时,只能用自身的信箱发信,所以要在Outlook Express的"帐户属性"中的"个人信息"里面填写正确的邮件地址。
Unable to relay for ...
多出现在用Wingate代理服务器发送邮件时。虽然在Wingate中"POP3 邮箱帐号"要使用"用户名#POP3地址"的格式,但在"帐户属性"中的"个人信息"中还是要填写一般的格式。
551
we do not relay ...
delivery not allowed to non-local recipient
无法转寄,使用21cn.com,china.com,371.net,sina.com等大多数信箱的smtp服务器时,只能用自身的信箱发信,所以要在Outlook Express的"帐户属性"中的"个人信息"里面填写正确的邮件地址。
User not local; please try forward-path
邮件服务器知道使用者不属于本地端,将尝试括号内的转送路径
552
Requested mail action aborted: exceeded storage allocation
所要求的动作中断:超出所分配的储存空间,邮件将退回给寄件者
Sorry, we don't allow mail from your host.
被封锁
553
sorry, that domain isn't in my list of allowed rcpthosts
mailbox name not allowed
邮件地址错误
Requested action not taken: mailbox name not allowed
sorry, your envelop sender is in my badmailfrom list
所要求的动作未执行:信箱不允许该动作执行 ,或者服务器限制了收件人的地址,只能换一个smtp服务器发信。
Relay restriction.
From , message blocked.
sorry,you are not allow to use this SMTP to relay your eami
sorry, that domain isn't in my list of allowed rcpthosts
使用21cn.com,china.com,371.net,sina.com等大多数信箱的smtp服务器时,只能用自身的信箱发信,所以要在Outlook Express的"帐户属性"中的"个人信息"里面填写正确的邮件地址。
authentication is required to send mail as
使用263.net和sohu.com的Smtp服务器时,不但要用自身的邮箱发信,而且要加入身份验证,所以即要在"个人信息"中填写正确邮箱地址,又要选中"SMTP服务器需要认证"。
...domain name required
多出现在用Wingate代理服务器发送邮件时。虽然在Wingate中"POP3 邮箱帐号"要使用"用户名#POP3地址"的格式,但在"帐户属性"中的"个人信息"中还是要填写一般的格式。
554
delivery error: dd This user doesn't have a yahoo.com account
delivery error: dd Sorry, your message to xxxxyahoo.com cannot be delivered. This account is over quota.
无此使用者
Transaction failed
传送失败,检查网络问题。
571
we don't accept junk mail (mail.sysnet.net.tw)
无效的寄件者
Java中的几个关于文件流的问题.
至于PipedInputStream(抱歉你可能写错了)
在官方网的解释是这样的:
传送输入流应该连接到传送输出流;传送输入流会提供要写入传送输出流的所有数据字节。通常,数据由某个线程从 PipedInputStream 对象读取,并由其他线程将其写入到相应的 PipedOutputStream。不建议对这两个对象尝试使用单个线程,因为这样可能会死锁该线程。传送输入流包含一个缓冲区,可在缓冲区限定的范围内将读操作和写操作分离开。
ADPipedInputStream类与PipedOutputStream类用于在应用程序中创建管道通信.一个PipedInputStream实例对象必须和一个PipedOutputStream实例对象进行连接而产生一个通信管道.PipedOutputStream可以向管道中写入数据,PipedIntputStream可以读取PipedOutputStream向管道中写入的数据.这两个类主要用来完成线程之间的通信.一个线程的PipedInputStream对象能够从另外一个线程的PipedOutputStream对象中读取数据.
PipedInputStream与PipedOutputStream类的编程实例(两个线程间进行通信的实例程序)
//Sender.java 发送者,这个线程主要用于向另一个线程发送数据
import java.io.*;
public class Sender extends Thread{ //表明是个线程类
private PipedOutputStream out = new PipedOutputStream(); //发送者是要向外面写数据,所以发送者内部创建PipedOutputStream对象用于向外写数据
public PipedOutputStream getOutputStream(){ //返回管道输出流对象
return out;
}
//这是一个线程类,所以它应该覆盖Thread的run方法,run方法在线程类启动时自动运行
public void run(){ //这里的run方法用于向PipedOutputStream中写入一串数据
字串2
String strInfo = new String("hello,receiver!");
try{ //write和close方法都可能有异常出现
out.write(StrInfo.getBytes());
out.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
//Receiver.java //接收者,也是一个线程类
import java.io.*;
public class Receiver extends Thread{
private PipedInputStream in = new PipedInputStream(); //接受者是要读取外面的数据,所以接受者内部创建PipedInputStream对象用于读取外面的数据
public PipedInputStream getInputStream(){ //返回管道输入流对象
return in;
}
//这是一个线程类,所以它应该覆盖Thread的run方法,run方法在线程类启动时自动运行
public void run(){ //这里的run方法用于接收数据
byte[] buf = new byte[1024]; //字节数组
try{ //read和close方法都可能有异常出现
int len = in.read(buf); //读取数据,len表示实际读取到的内容(长度)
System.out.println("the following message comes from sender:\n" = new String(buf ,o,len) );
字串8
in.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
//PipedStreamTest.java //启动类
import java.io.*;
public calss PipedStreamTest{
public static void main(String[] args) throws Exception {
Sender t1 = new Sender(); //创建发送者对象;
Receiver t2 = new Receiver(); //创建接收者对象;
PipedOutputStream out = t1.getOutputStream();
PipedInputStream in = t2.getIntStream();
out.connect(in); //用于连接到PipedInputStream上,与in.connect(out)等价,connect方法有异常出现的可能
t1.start(); //启动线程
t2.start(); //启动线程
}
}
PipedWriter和PipedReader类,它用来处理字符文本的管道通信.
使用管道流类,可以实现名个/doc/"程序模块之间的松耦合通信,这样我们在/doc/"程序中就可以灵活的将多个这样的模块的输入流与输出流相联,然后以拼装成满足各种应用的/doc/"程序,而不用对模块内部进行修改.使用管道连接的模块具有强内聚弱耦合的特点,若模块被替换或被拆卸不会影响到其他的模块.
字串7
java 发送邮件
要两个java文件 还有一个mail.jar是不是只能用javamail谁也不敢说
第一个:
public class Constant {
public static final String mailAddress ="用户名@163.com";
public static final String mailCount ="用户名";
public static final String mailPassword ="密码";
public static final String mailServer ="smtp.163.com";
//pukeyouxintest,
}
第二个:
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMail {
/**
* 发送简单邮件
* @param str_from:发件人地址
* @param str_to:收件人地址
* @param str_title:邮件标题
* @param str_content:邮件正文
*/
public static void send(String str_from,String str_to,String str_title,String str_content) {
// str_content="a href=''html元素/a"; //for testing send html mail!
try {
//建立邮件会话
Properties props=new Properties(); //用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,
//存储发送邮件服务器的信息
props.put("mail.smtp.host",Constant.mailServer);
//同时通过验证
props.put("mail.smtp.auth","true");
//根据属性新建一个邮件会话
Session s=Session.getInstance(props);
s.setDebug(true); //有他会打印一些调试信息。
//由邮件会话新建一个消息对象
MimeMessage message=new MimeMessage(s);
//设置邮件
InternetAddress from= new InternetAddress(str_from); //pukeyouxintest2@163.com
message.setFrom(from); //设置发件人的地址
//
// //设置收件人,并设置其接收类型为TO
InternetAddress to=new InternetAddress(str_to); //pukeyouxintest3@163.com
message.setRecipient(Message.RecipientType.TO, to);
//设置标题
message.setSubject(str_title); //java学习
//设置信件内容
// message.setText(str_content); //发送文本邮件 //你好吗?
message.setContent(str_content, "text/html;charset=gbk"); //发送HTML邮件 //b你好/bbrp大家好/p
//设置发信时间
message.setSentDate(new Date());
//存储邮件信息
message.saveChanges();
//发送邮件
Transport transport=s.getTransport("smtp");
//以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码
transport.connect(Constant.mailServer,Constant.mailCount,Constant.mailPassword);
//发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message,message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//测试用的,你吧你想写的内容写上去就行
send(Constant.mailAddress,"收件人邮箱","标题","b内容/b");
}
}
然后把mail.jar导入,就可以了,我用的是163 的,其他的吧相应的服务器改一下就行了
java 中的管道流是怎么用的?它与不同的输入输出流的区别在哪里?
在Java的IO流中有一种很非凡的流就是管道流类:PipedInputStream PipedOutputStream.这两个类的实例对象必须要通过connect方法连接.
其实看这么一个程序就知道了管道流类的使用方法.
//sender.java
import java.io.*;
import java.util.*;
public class sender extends Thread
{
PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getOut()
{
return out;
}
public void run()
{
String str = "Hello,receiver ! I`m sender\n";
try
{
out.write(str.getBytes());
out.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
//receiver.java
import java.io.*;
import java.util.*;
public class receiver extends Thread
{
PipedInputStream in = new PipedInputStream();
public PipedInputStream getIn()
{
return in;
}
public void run()
{
byte [] buf = new byte[1024];
try
{
int len = in.read(buf);
System.out.println("the following is from sender:\n"+new String(buf,0,len));
in.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
//TestPiped.java
import java.io.*;
class TestPiped
{
public static void main(String [] args)
{
sender s = new sender();
receiver r = new receiver();
PipedOutputStream out = s.getOut();
PipedInputStream in = r.getIn();
try
{
in.connect(out);
s.start();
r.start();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
这个程序的功能是sender发送”Hello,receiver ! I`m sender”给receiver然后receiver接受后显示出来并且在前面加上”the following is from sender”的信息.要注重的就是PipedInputStream和PipedOutputStream分别用两个线程传送数据.
java发送邮件失败!
检查一下你的servicehost是否正确,用户名密码是否正确。
如果编码没问题,也没错,
登陆下邮箱发送试试能不能,
也有可能如果是在公司,有些公司会屏蔽对外发送邮件
senderjava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、senderjava的信息别忘了在本站进行查找喔。