首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

关于javaMail的登录名跟发件人的

2012-12-17 
关于javaMail的登录名和发件人的我是一边看视频做的,看的是传智播客的视频,怎么知道他们成功了,看代码publ

关于javaMail的登录名和发件人的
我是一边看视频做的,看的是传智播客的视频,怎么知道他们成功了,看代码

public static void main(String[] args) throws MessagingException {
Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");//使用smtp协议
Session session = Session.getInstance(props);
session.setDebug(true);//加入调式
Message msg = new MimeMessage(session);//信息
msg.setText("efefwfe");//信息内容
msg.setFrom(new InternetAddress("lisi@qq.com"));//发件人

Transport transport = session.getTransport();
transport.connect("smtp.qq.com", 25, "379954476@qq.com",
"password");//连接(smtp服务器,端口,发件人登陆,密码)

transport.sendMessage(msg, new Address[] { new InternetAddress(
"xusenjian@sohu.com") });//发送信息,地址

transport.close();
}


上面的发件人如果跟发件人登录的账户不同的话,便报了个错
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 501 mail from address must be same as authorization user

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
at cn.itcast.javamail.Demo.main(Demo.java:33)
com.sun.mail.smtp.SMTPSendFailedException: 501 mail from address must be same as authorization user

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
at cn.itcast.javamail.Demo.main(Demo.java:33)

他们做的时候,是可以把发件人设置成跟登陆名不同的名字的,为什么我一设置就报错,程序是一模一样的

[最优解释]
刚才我测试了一下,是可以的。代码如下,我用的是spring封装的类。
import java.io.File;
import java.util.Properties;

import javax.mail.internet.MimeMessage;

import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
public class SendMailTest {
public static void main(String[] args) { 
try{
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
//MimeMessage msg = senderImpl.createMimeMessage();
//MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
    //设定mail server 
    senderImpl.setHost("127.0.0.1"); 
    senderImpl.setUsername("1000") ; // 根据自己的情况,设置username
    senderImpl.setPassword("123456") ; // 根据自己的情况, 设置password
    Properties prop = new Properties() ;
    prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
    prop.put("mail.smtp.timeout", "25000") ; 
    senderImpl.setJavaMailProperties(prop); 
    //建立邮件消息,发送简单邮件和html邮件的区别 
    MimeMessage mailMessage = senderImpl.createMimeMessage(); 
    //注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,         


    //multipart模式 
    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8"); 
    
    //设置收件人,寄件人 
    messageHelper.setTo("1002@u3c.com"); 
    messageHelper.setFrom("1001@u3c.com"); 
    messageHelper.setSubject("测试邮件中嵌套图片11111!!"); 
    //true 表示启动HTML格式的邮件 
    messageHelper.setText("1111111111111",false); 
   
   // FileSystemResource img = new FileSystemResource(new File("d:/2.jpg")); 
    
   // messageHelper.addInline("aaa",img); 
   
 
    
    //发送邮件 
    senderImpl.send(mailMessage); 
    
    System.out.println("邮件发送成功.."); 

}catch(Exception e){
e.printStackTrace();
}



}
[其他解释]
这个我测试过,163 126的邮箱一定要相同,sina可以不相同,但有时发出去会收不到邮件。而我用公司自己的邮件服务器,改收件人发送基本都能收到。
[其他解释]
救命救命救命救命救命救命
[其他解释]
是啊,是啊,我也遇到了这个问题!
[其他解释]
501 mail from address must be same as authorization user,发件人地址和验证的用户名必须要一样的。如果不一样,就会有很多问题!
[其他解释]
但是视频已经做了,可以是不一样的要怎么设置
[其他解释]

引用:
但是视频已经做了,可以是不一样的要怎么设置


那有可能是邮件服务器的设置问题了。
[其他解释]
我也是遇到同样的问题了,关注中...
[其他解释]
是这样的!不是随便就能登录上的!你必须保证你的邮箱开启SMTP,这个才可以!
[其他解释]
引用:
但是视频已经做了,可以是不一样的要怎么设置

那用自己的邮箱服务器
[其他解释]
我这里有一个现成的 Java发邮件的 DEMO 肯定能用 要的话 E-mai我 我的邮箱:251637313@qq.com
[其他解释]
没下文了,郁闷啊~
[其他解释]
msg.setFrom(new InternetAddress("lisi@qq.com"));//发件人

Transport transport = session.getTransport();
transport.connect("smtp.qq.com", 25, "379954476@qq.com",
"password");//连接(smtp服务器,端口,发件人登陆,密码)

发件人要跟 服务器的登录名 要一致·····

热点排行