Hallo Leute,
ich brauche dringend eure Hilfe. Ich muss eine Bestätigungsmail senden können.
Ablauf ist so:
Ich reserviere als Student ein Thema. Und soll eine Email erhalten indem es steht, dass ich mich für das Thema angemeldet habe, aber es noch von der Dozent bestätigt werden muss.
Ein Programmcode steht schon bereit
Ablauf:
Der Student reserviert ein Thema. Und erhält nachdem der Dozent es bestätigt hat eine Email.
Ich wollte es auch so ähnlich programmieren. Aber bin mir jetzt nicht sicher ob es soweit in Ordnung ist.
Hab eine Klasse EMail.
Und Klasse Controller
Und noch Reservierungsuebersicht.jsp wenn das Thema bestätigt wird
Hab gedacht dass ich es auch so ähnlich progammieren kann. Nur in Email-Klasse eine weitere Methode:
und wenn ich die Methode im Controller erweitere mit
ich brauche dringend eure Hilfe. Ich muss eine Bestätigungsmail senden können.
Ablauf ist so:
Ich reserviere als Student ein Thema. Und soll eine Email erhalten indem es steht, dass ich mich für das Thema angemeldet habe, aber es noch von der Dozent bestätigt werden muss.
Ein Programmcode steht schon bereit
Ablauf:
Der Student reserviert ein Thema. Und erhält nachdem der Dozent es bestätigt hat eine Email.
Ich wollte es auch so ähnlich programmieren. Aber bin mir jetzt nicht sicher ob es soweit in Ordnung ist.
Hab eine Klasse EMail.
Java:
/**
* Diese Methode schickt eine Bestaetigungsemail an den
* angegebenen Benutzer.
*/
public final void sendConfirmationMail(final String username,
final String thema) {
String nachricht = "Ihr Seminarthema: " + thema
+ " wurde soeben best\u00E4tigt."
+ "\n Viel Erfolg bei der Bearbeitung ihres Themas.";
mailConfig();
Properties props = new Properties();
EMailAuthenticator auth = new EMailAuthenticator();
this.emailAdr = auth.getPasswordAuthentication().getUserName();
this.passwort = auth.getPasswordAuthentication().getPassword();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", port);
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth", authen);
Session session = Session.getDefaultInstance(props, auth);
Message message = new MimeMessage(session);
empfaenger = username + "@web.de";
try {
message.setFrom(new InternetAddress(this.emailAdr, benutzer));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(
empfaenger));
message.setSubject("Best\u00E4tigung ihres Seminarthemas");
message.setText(nachricht);
message.setSentDate(new Date());
message.saveChanges();
Transport transport = session.getTransport("smtp");
if (null != smtpServer && null != this.emailAdr
&& null != this.passwort && this.emailAdr.contains("@")) {
transport.connect(smtpServer, this.emailAdr, this.passwort);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
} catch (AddressException e) {
logger.error(e);
} catch (MessagingException e) {
logger.error(e);
} catch (UnsupportedEncodingException e) {
logger.error(e);
}
}
Und Klasse Controller
Java:
/**
* Methode aktualisiert den Status einer Reservierung.
*/
@ProcessAction(name = "statusaendern")
public final void sendUpdateStatus(final ActionRequest request,
final ActionResponse response) {
if (request.getParameter("art") == null
|| request.getParameter("id") == null) {
response.setRenderParameter("jspPage", "error.jsp");
} else {
String grund = (request.getParameter("grund"));
String art = (request.getParameter("art"));
String id = (request.getParameter("id"));
String student = request.getParameter("student");
String thema = request.getParameter("thema");
if (checkString(art, "default") && checkString(id, "default")) {
if (new DBStatementsii().getStatus(id).equals("1")) {
new DBStatements().updateStatus(id, art, grund);
EMail email = new EMail();
response.setRenderParameter("jspPage",
"reservierungsuebersicht.jsp");
if (art.equals("bestaetigen") && student != null
&& thema != null) {
email.sendConfirmationMail(student, thema);
}
} else {
response.setRenderParameter("jspPage", "error.jsp");
}
} else {
response.setRenderParameter("jspPage", "error.jsp");
}
}
}
Und noch Reservierungsuebersicht.jsp wenn das Thema bestätigt wird
Java:
<form action="<%=statusaendern%>" method="post">
<input type="submit" value="Bestätigen"
onclick="return confirm('Wollen Sie dieses Thema wirklich bestätigen? \n \nThema: <%=StringEscapeUtils.escapeHtml(a.getThemaName())%> \nStudent: <%=StringEscapeUtils.escapeHtml(a.getStudentName())%>');">
<input type="hidden" name="id" value="<%=a.getReservierungID()%>"> <input
type="hidden" name="art" value="bestaetigen"> <input
type="hidden" name="student" value="<%=a.getStudentName()%>"> <input
type="hidden" name="thema" value="<%=a.getThemaName()%>">
</form> <%
Hab gedacht dass ich es auch so ähnlich progammieren kann. Nur in Email-Klasse eine weitere Methode:
Java:
/**
* Diese Methode schickt eine vorlaeufige Bestaetigungsemail an den
* angegebenen Benutzer.
*/
public final void sendProvisionalConfirmationMail(final String username,
final String thema) {
String nachricht = "Hallo Student, "
+ " Dein Seminarthema: " + thema
+ " wurde soeben vorl\u00E4ufig reserviert."
+ " Jedoch muss der Dozent es noch best\u00E4tigen.";
mailConfig();
Properties props = new Properties();
EMailAuthenticator auth = new EMailAuthenticator();
this.emailAdr = auth.getPasswordAuthentication().getUserName();
this.passwort = auth.getPasswordAuthentication().getPassword();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", port);
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth", authen);
Session session = Session.getDefaultInstance(props, auth);
Message message = new MimeMessage(session);
empfaenger = username + "@web.de";
try {
message.setFrom(new InternetAddress(this.emailAdr, benutzer));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(
empfaenger));
message.setSubject("Vorl\u00E4ufige Best\u00E4tigung ihres Seminarthemas");
message.setText(nachricht);
message.setSentDate(new Date());
message.saveChanges();
Transport transport = session.getTransport("smtp");
if (null != smtpServer && null != this.emailAdr
&& null != this.passwort && this.emailAdr.contains("@")) {
transport.connect(smtpServer, this.emailAdr, this.passwort);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
} catch (AddressException e) {
logger.error(e);
} catch (MessagingException e) {
logger.error(e);
} catch (UnsupportedEncodingException e) {
logger.error(e);
}
}
und wenn ich die Methode im Controller erweitere mit
Java:
else if(art.equals("reserviert")&& student!= null && thema != null){
email.sendProvisionalConfirmationMail(student,thema);
}