#java #email #joptionpane
#java #Адрес электронной почты #joptionpane
Вопрос:
Я не очень опытный программист, но я учился. Прямо сейчас я нахожусь в процессе написания тестового почтового бота для, ну, отправки электронных писем. Я столкнулся с проблемой, когда попытался сделать так, чтобы вы могли вводить сообщение и тему электронного письма в диалоговом окне JOptionPane.
Вот код, посмотрите на строки вверху и messageobjs внизу..
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JOptionPane;
public class Ebot2
{
public static void main(String[] args)
{
String Dest;
Dest = JOptionPane.showInputDialog("Who would you like to message?");
String Subject;
Subject = JOptionPane.showInputDialog("What is the message subject?");
String Message;
Message = JOptionPane.showInputDialog("What is the message?");
String sendrmailid = "email@gmail.com";
final String uname = "email";
final String pwd = "pass";
Properties propvls = new Properties();
propvls.put("mail.smtp.auth", "true");
propvls.put("mail.smtp.starttls.enable", "true");
propvls.put("mail.smtp.host", "smtp.gmail.com");
propvls.put("mail.smpt.port", "25");
Session sessionobj = Session.getInstance(propvls,
new javax.mail.Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(uname, pwd);
}
});
try
{
Message messageobj = new MimeMessage(sessionobj);
messageobj.setFrom(new InternetAddress(sendrmailid));
messageobj.setRecipients(Message.RecipientType.TO,InternetAddress.parse(Dest));
messageobj.setSubject(Subject);
messageobj.setText(Message);
Transport.send(messageobj);
System.out.println("Your email sent successfully....");
}
catch (MessagingException exp)
{
throw new RuntimeException(exp);
}
}
}
извините за дерьмовое форматирование, с блоком кода было сложно. В любом случае, ошибка, с которой я столкнулся, началась после того, как я изменил setSubject и setText на строки, которые вводятся через JOptionPane. И ошибка такова..
Ebot2.java:53: error: cannot find symbol
messageobj.setRecipients(Message.RecipientType.TO,InternetAddress.parse(Dest));
^
symbol: variable RecipientType
location: variable Message of type String
1 error
Спасибо всем, кто отвечает, мне действительно нужна помощь в этом!
Комментарии:
1. Проверьте свой импорт? Сообщение отсутствует
2. Добавить
import javax.mail.Message.RecipientType;
3. Я добавил импорт типа получателя почтового сообщения Java, но на самом деле это ни на что не повлияло. Я все еще получаю ту же ошибку. Имейте в виду, что до того, как я добавил все элементы JOptionPane для области сообщений и темы, код работал отлично. Должен ли я просто удалить содержимое JOptionPane для сообщения и темы?
Ответ №1:
Я это исправил, ребята. Проблема заключалась в том, что у меня была строка для сообщения, установленная как Message (та же проблема с subject), которая также была переменной. Итак, я просто переименовал строку, и все это сработало. В любом случае, спасибо за помощь, рад узнать, что я могу обращаться к этому сайту с вопросами.
Далее я попытаюсь выяснить, как отправлять электронное письмо несколько раз, но я должен быть в состоянии разобраться с этим самостоятельно.