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