Code:
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class TextSender {
private final Carrier carrier;
private final Properties mail;
private final Session session;
public TextSender(final String email, final String password, final Carrier carrier) {
this.carrier = carrier;
this.mail = new Properties();
this.mail.put("mail.smtp.auth", "true");
this.mail.put("mail.smtp.starttls.enable", "true");
this.mail.put("mail.smtp.host", "smtp.gmail.com");
this.mail.put("mail.smtp.port", "587");
this.session = Session.getInstance(mail, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(email, password);
}
});
}
public void send(String phoneNumber, String textMessage) throws Exception {
Message message = new MimeMessage(session);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(phoneNumber + carrier.getCarrier()));
message.setText(textMessage);
Transport.send(message);
}
public enum Carrier {
ATT("@txt.att.net"), SPRINT("@messaging.sprintpcs.com"), TMOBILE("@tmomail.net"),
VERIZON("@vtext.com"), VIRGIN("@vmobl.com");
private String carrier;
private Carrier(String carrier) {
this.carrier = carrier;
}
public String getCarrier() {
return carrier;
}
}
}