0

私は今、私が必要とすることだけを行う以下のコードを持っています(Javaを使用して携帯電話にテキストメッセージを送信します)。

さて、私の質問はもう少し具体的であり、それが何を意味するのか、それが可能かどうかさえよくわかりません.

質問は次のとおりです。

1 - この電子メールを送信すると、一般的な (一時的な?) 送信者が作成されるたびに (おそらく gmail 側で)、常に次のよう"1 (410) 000-00x"になります。 )。さて、以下のこのコードは、人間にデータを伝達して特定のアクションを実行させるためのリアルタイムの日中電子メール メカニズムの一部です。

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

txt ゲートウェイではなく mms ゲートウェイを使用してみてください。mms ゲートウェイは電子メール アドレスを保持します。したがって、txt.att.net ではなく、mms.att.net になります。

ただし、これが時間に敏感な場合は、おそらく SMS ソリューションに固執してサードパーティに行く必要があります。MMS は速度に関して信頼性が低いことがわかっているからです。

于 2012-12-24T20:04:07.740 に答える
0

問題が Google 側にないことは確かです。Google は、Gmail アカウントから at-t ゲートウェイにメールを配信するだけです。さらに、AT-T ゲートウェイは独自の方法で電子メール アドレスを携帯電話番号に変換し、それを制御する方法はありません。

いくつか提案があります。

  1. 「from」メッセージをテキスト自体に含めることができます。

  2. 別の SMS ゲートウェイを使用することもできますが、それらのほとんどは無料ではないことに注意してください。

于 2012-12-24T19:46:43.887 に答える