我有一個 Angular 應用程式(聯系表格)和 springboot 應用程式,我在提交聯系表格時用于通過 gmail 發送電子郵件。
我遇到的問題是負面情況沒有被捕獲,從某種意義上說,如果我的 springboot 應用程式(電子郵件)已關閉,我的 Angular 應用程式仍然會說它成功,而不是說“電子郵件服務已關閉”。目前發生的情況是,在這兩種情況下都會發送成功狀態,即使 springboot 應用程式已關閉。
在我的情況無法正常作業的地方,任何形式的幫助都會非常有幫助。
我的contactus.component.ts 檔案如下:
import { Component, OnInit } from '@angular/core';
import { FormBuilder } from '@angular/forms';
import { Loader } from '@googlemaps/js-api-loader';
import { HttpClient } from '@angular/common/http';
import { ReactiveFormsModule } from '@angular/forms';
import * as $ from 'jquery';
import { NgForm } from '@angular/forms';
import { FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'app-contactus',
templateUrl: './contactus.component.html',
styleUrls: ['./contactus.component.css'],
})
export class ContactusComponent implements OnInit {
formData: FormGroup;
submitted = false;
alert: boolean = false;
pattern = '^[0-9_-]{10,12}';
constructor(private http: HttpClient, private formBuilder: FormBuilder) {}
ngOnInit() {
this.formData = this.formBuilder.group({
first_name: ['', Validators.required],
last_name: ['', Validators.required],
phone: [
'',
[
Validators.required,
Validators.pattern('^[0-9]*$'),
Validators.minLength(10),
],
],
email: ['', [Validators.required, Validators.email]],
desc: ['', Validators.required],
});
}
// convenience getter for easy access to form fields
get f() {
return this.formData.controls;
}
onClickSubmit() {
this.submitted = true;
// stop here if form is invalid
if (this.formData.invalid) {
return;
}
console.log('First Name:' this.formData.value.first_name);
console.log('Last Name:' this.formData.value.last_name);
console.log('Description:' this.formData.value.desc);
console.log('Email:' this.formData.value.email);
console.log('Phone Number:' this.formData.value.phone);
let mailData = {
from: '[email protected]',
subject: 'Enquiry From Website User',
body:
'Hello Admin, \n You have an Enquiry from a website user, user information is as below: \n\n'
'------------------------------------------------------------------------------------'
'\n'
'First Name : '
this.formData.value.first_name
'\n'
'Last Name : '
this.formData.value.last_name
'\n'
'Description of the Query : '
this.formData.value.desc
'\n'
'Email Address : '
this.formData.value.email
'\n'
'Phone Number : '
this.formData.value.phone
'\n'
'------------------------------------------------------------------------------------\n'
'Thank you,\n Admin',
};
this.http.post<any>('http://localhost:8084/mail', mailData).subscribe(
(error) => {
status = error;
console.log('status error= ' error.error.text);
alert('Email Service is down, sorry for inconvenience caused');
},
(data) => {
console.log('status success = ' status);
this.alert = true;
alert(
'\n\nYour Enquiry is Submitted Successfully, we will reach out to you at the earliest !!\n\n\n Thank you,\n Admin'
);
//window.location.reload();
}
);
}
}
我的郵件控制器檔案:
package com.sami.EmailClientHMW.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.*;
@RestController
public class MailController {
@Autowired
private JavaMailSender mailSender;
@GetMapping("/testing")
public String Testing()
{
return "Welcome to HMW Email Client Version..New!!";
}
@PostMapping("/mail")
@CrossOrigin
public String sendmail(@RequestBody MailRequest request) {
sendSimpleEmail(request.getFrom(), request.getBody(), request.getSubject());
return "email sent successfully";
}
private void sendSimpleEmail(
String fromEmail,
String body,
String subject)
{
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("[email protected]");
message.setTo("[email protected]");
message.setSubject(subject);
message.setText(body);
mailSender.send(message);
System.out.println("Mail Sent Successfully..!!");
}
}
還有我的 html 檔案:
<div class="myDiv" class="form1">
<div><p align="center">Enter Your Contact Details</p></div>
<form
[formGroup]="formData"
(ngSubmit)="onClickSubmit()"
data-empty=""
action="#"
method="post"
>
<div class="form-group" class="label">
First Name :
<input
type="text"
formControlName="first_name"
placeholder="Enter your First Name :"
class="form-control"
[ngClass]="{ 'is-invalid': submitted && f.first_name.errors }"
/>
<div *ngIf="submitted && f.first_name.errors" class="invalid-feedback">
<div *ngIf="f.first_name.errors.required">First Name is required</div>
</div>
<br />
</div>
<div class="form-group" class="label">
Last Name :
<input
type="text"
formControlName="last_name"
placeholder="Enter your Last Name :"
class="form-control"
[ngClass]="{ 'is-invalid': submitted && f.last_name.errors }"
/>
<div *ngIf="submitted && f.last_name.errors" class="invalid-feedback">
<div *ngIf="f.last_name.errors.required">Last Name is required</div>
</div>
<br />
</div>
<div class="form-group" class="label">
Description :
<textarea
rows="4"
cols="90"
formControlName="desc"
placeholder="Enter the Description :"
class="form-control"
[ngClass]="{ 'is-invalid': submitted && f.desc.errors }"
></textarea>
<!-- <input type="text" formControlName="desc" placeholder="Enter the Description :" [ngClass]="{ 'is-invalid': submitted && f.desc.errors }" />-->
<div *ngIf="submitted && f.desc.errors" class="invalid-feedback">
<div *ngIf="f.desc.errors.required">Description is required</div>
</div>
<br />
</div>
<div class="form-group" class="label">
Email Address :
<input
type="text"
formControlName="email"
placeholder="Enter your Email Address :"
class="form-control"
[ngClass]="{ 'is-invalid': submitted && f.email.errors }"
/>
<div *ngIf="submitted && f.email.errors" class="invalid-feedback">
<div *ngIf="f.email.errors.required">Email is required</div>
<div *ngIf="f.email.errors.email">
Email must be a valid email address
</div>
</div>
<br />
</div>
<div class="form-group" class="label">
Phone Number :
<input
type="text"
formControlName="phone"
placeholder="Enter your Phone Number :"
class="form-control"
[ngClass]="{ 'is-invalid': submitted && f.phone.errors }"
/>
<div *ngIf="submitted && f.phone.errors" class="invalid-feedback">
<div *ngIf="f.phone.errors.required">Phone Number is required</div>
<!-- <div *ngIf="f.phone.errors.phone">Enter 10 digit Mobile Number.</div>-->
<div
*ngIf="f.phone.errors.pattern || f.phone.errors.maxlength || f.phone.errors.minlength"
>
Phone number must be at least 10 numbers
</div>
</div>
<br />
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Submit Your Query</button>
</div>
</form>
</div>
uj5u.com熱心網友回復:
明白了..在互聯網上進行了大量研究后,我能夠解決問題。在匯入和輸入下面,我必須包含以使其成功運行。在這里添加,以便如果其他人面臨同樣的問題,他們可以看看這個來解決問題。
import { HttpHeaders, HttpClient, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';
let httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json', }), responseType: 'text' as 'json' };
this.http.post<any>(environment.apiBaseUrl '/mail',mailData,httpOptions).subscribe
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/409809.html
標籤:
下一篇:如何顯示論壇的用戶名?
