使用Java一致的发件人通过g-mail发送短信到At& t phone

时间:2012-12-24 19:28:19

标签: java gmail

我有以下代码,它现在正是我需要的(使用java向手机发送短信)。

现在我的问题有点具体了,我不确定它的含义或是否有可能。

问题如下:

1 - 当我发送这封电子邮件时,每次创建一个通用(临时?)发件人(可能在gmail端),看起来总是像"1 (410) 000-00x",其中x似乎在向上/向下迭代(我只做了几次测试)。现在,下面的代码是实时日内电子邮件机制的一部分,用于将数据传达给人,以便他们采取某种行动。

2 - 因此,将发件人作为我的样本abc@gmail.com是最佳的,但这不会发生。有没有办法强迫这种情况发生?我应该使用除gmail以外的东西吗?

任何指针都表示赞赏。

注:

我认为这可能会出现,所以我现在就说:行动极其时间敏感。有了这个,电子邮件响应不够,立即收到短信。我同意发送电子邮件会立即解决问题。

    public static void sendIT() throws AddressException, MessagingException, javax.mail.MessagingException
    {


    String host = "smtp.gmail.com";
    String from = "abc@gmail.com";
    String pass = "test";
    Properties props = System.getProperties();
    props.put("mail.smtp.starttls.enable", "true"); // added this line
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", from);
    props.put("mail.smtp.password", pass);
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");

    String[] to = {"5555555555@txt.att.net"};

    Session session = Session.getDefaultInstance(props, null);
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));

    InternetAddress[] toAddress = new InternetAddress[to.length];

    //message.setFileName(g.destFileTracker);
    // To get the array of addresses
    for( int i=0; i < to.length; i++ ) { // changed from a while loop
        toAddress[i] = new InternetAddress(to[i]);
    }
    System.out.println(Message.RecipientType.TO);

    for( int i=0; i < toAddress.length; i++) { // changed from a while loop
        message.addRecipient(Message.RecipientType.BCC, toAddress[i]);
    }


    message.setSubject("Activity");
    message.setText("test");
    Transport transport = session.getTransport("smtp");
    transport.connect(host, from, pass);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
}

2 个答案:

答案 0 :(得分:2)

您应该尝试使用mms网关而不是txt网关。 mms网关将保留电子邮件地址。所以它不是txt.att.net,而是mms.att.net。

如果这对时间敏感,你应该坚持使用短信解决方案,然后去第三方,因为我发现彩信速度不够可靠。

答案 1 :(得分:0)

我很确定这个问题不在谷歌方面。 Google只会将您的Gmail帐户中的电子邮件发送到at-t网关。然而,AT-T网关以自己的方式将电子邮件地址转换为手机号码,并且无法控制它。

我有几个建议。

  1. 您可以在文本中包含“来自”消息。

  2. 您可以使用其他短信网关,但请注意,其中大多数都不是免费的。