我一直在尝试使用javamail api发送电子邮件。来自smtp服务器(smtp.live.com)的调试显示为550 5.3.4未采取请求操作;要继续发送消息,请登录您的帐户。通过Javamail发送电子邮件
它似乎创建的消息很好,但不允许它发送。任何想法为什么?
try
{
// Setup properties for e-mail server
Properties props = System.getProperties();
props.put("mail.smtp.host", mConfig.getEmailHost());
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");
// Get a Session object
Session session = Session.getInstance(props, new MyAuthenticator());
session.setDebug(true);
Transport transport = session.getTransport("smtp");
// Create message
MimeMessage message = new MimeMessage(session);
// Add the to/from fields
message.setFrom(new InternetAddress(mFromAddr, mFromName));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(mToAddr));
if (mCCAddrs != null)
{
for (int i=0; i<mCCAddrs.length; i++)
message.addRecipient(Message.RecipientType.CC, new InternetAddress(mCCAddrs[i]));
}
// Add Subject
message.setSubject(mEmailSubject);
// Setup multipart message for including the attachment
Multipart multipart = new MimeMultipart();
// Create message body
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(mEmailBody);
multipart.addBodyPart(messageBodyPart);
if (mAttachmentName != null)
{
// Create message attachment
BodyPart messageAttachmentPart = new MimeBodyPart();
messageAttachmentPart.setDataHandler(new DataHandler(new ByteArrayDatasource(data)));
messageAttachmentPart.setFileName(mAttachmentName);
multipart.addBodyPart(messageAttachmentPart);
}
// Send message
message.setContent(multipart);
transport.connect(mConfig.getEmailHost(), mConfig.getEmailUser(), mConfig.getEmailPassword());
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
catch (Exception ex)
{
ex.printStackTrace();
throw new Exception("Failed to send e-mail: " + ex.getMessage());
}
`
我已经有了,私有类MyAuthenticator扩展身份验证 { 公众的PasswordAuthentication的getPasswordAuthentication(){ 返回 新的PasswordAuthentication(mConfig.getEmailUser(),mConfig.getEmailPassword()); } } – AC3112 2013-02-20 12:36:07
您是否为'emailUser','emailPassword'调试了'mConfig'值。当验证者被创建时它们是否存在? – Perception 2013-02-20 12:38:03
我已经改变了我的每个会话的会话= Session.getInstance(道具,新javax.mail.Authenticator(){ 保护的PasswordAuthentication 的getPasswordAuthentication(){ 返回新的PasswordAuthentication(mConfig.getEmailUser(),mConfig.getEmailPassword() ); } });我仍然得到同样的错误。 – AC3112 2013-02-20 12:43:48