Gmail smtp,Blackberry,BB,socketConnection,以编程方式通过gmail smtp发送电子邮件

时间:2010-03-25 14:33:17

标签: java ssl blackberry smtp gmail

有人可以帮助我如何通过socketConnection以编程方式使用gmail smtp服务器。我的问题是如何编写TSL / SSL身份验证,因为我无法与服务器通信?有人在黑莓手机上用java做过吗?

谢谢

亚历

2 个答案:

答案 0 :(得分:3)

黑莓的开源电子邮件客户端怎么样?使用gmail的smtp服务器并处理TSL / SSL身份验证没有问题。

它恰好是RIM尚未发现的黑莓手机最受欢迎的开源电子邮件客户端。

这是一个页面,您可以从中下载并试用它,或获取所有源代码: http://www.logicprobe.org/proj/logicmail

答案 1 :(得分:0)

有一个用Java发送邮件的库,它被称为JavaMail。我不知道它是否可以与Blackberry一起使用,但如果是这样的话,请使用这个类:

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class MailUtils {
    private MailUtils() {
    }

    public static void sendSSLMessage(String recipients[], String subject,
                           String message, String from) throws MessagingException {
        boolean debug = true;
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.auth", "true");
        props.put("mail.debug", "true");
        props.put("mail.smtp.port", "465");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.socketFactory.fallback", "false");
        Session session = Session.getDefaultInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("your@email.at.gmail", "your password");
                    }
                }
        );
        session.setDebug(debug);
        Message msg = new MimeMessage(session);
        InternetAddress addressFrom = new InternetAddress(from);
        msg.setFrom(addressFrom);
        InternetAddress[] addressTo = new InternetAddress[recipients.length];
        for (int i = 0; i < recipients.length; i++) {
            addressTo[i] = new InternetAddress(recipients[i]);
        }
        msg.setRecipients(Message.RecipientType.TO, addressTo);
// Setting the Subject and Content Type
        msg.setSubject(subject);
        msg.setContent(message, "text/plain");
        Transport.send(msg);
    }
}