0

我有下面的代码,现在可以满足我的需要(使用 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();
}
4

2 回答 2

2

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

但是,如果这对时间敏感,您可能应该坚持使用 SMS 解决方案并使用第三方,因为我发现 MMS 在速度方面并不可靠。

于 2012-12-24T20:04:07.740 回答
0

我很确定问题不在谷歌方面。Google 只是将一封电子邮件从您的 gmail 帐户发送到 at-t 网关。然后,AT-T网关以自己的方式将电子邮件地址转换为手机号码,无法控制。

我有几个建议。

  1. 您可以将“发件人”消息包含到文本本身中。

  2. 您可以使用不同的 SMS 网关,但请记住,它们中的大多数都不是免费的。

于 2012-12-24T19:46:43.887 回答