【发布时间】:2019-10-19 18:59:35
【问题描述】:
我正在尝试使用 mailkit 将联系表单数据提交到 api 端点。我有一个带有联系页面的网站,每当有人填写联系表格并点击发送时,我希望我的网站向我发送一封电子邮件。可悲的是,我一直在努力解决这个问题好几个星期(编程新手),我想我会寻求帮助。
我已经检查了无数次 youtube,但似乎在任何地方都找不到完整的教程,说明如何使用 .NET web api、mailkit 和 angular 7 来做到这一点。
我将从我的表单 html 开始(带有验证的非常标准的反应式表单):
<form novalidate [formGroup]="contactForm" method="post" (ngSubmit)="onSubmit(contactForm, contactForm.isValid)">
<div class="form-group">
<label>Name</label>
<input type="text" formControlName="name" class="form-control" placeholder="Enter name">
<div [hidden]= "contactForm.controls.name.valid || contactForm.controls.name.pristine" class="alert alert-danger">
<span *ngIf="!contactForm.controls.name.valid"> Name is required!</span>
</div>
</div>
<div class="form-group">
<label>Email</label>
<input type="text" formControlName="email" class="form-control" placeholder="Enter email">
<div [hidden]= "contactForm.controls.email.valid || contactForm.controls.email.pristine" class="alert alert-danger">
<span *ngIf="!contactForm.controls.email.valid"> Email is required!</span>
</div>
</div>
<div class="form-group">
<label>Subject</label>
<input type="text" formControlName="subject" class="form-control" placeholder="Enter subject">
<div [hidden]= "contactForm.controls.subject.valid || contactForm.controls.subject.pristine" class="alert alert-danger">
<span *ngIf="!contactForm.controls.subject.valid"> Subject is required!</span>
</div>
</div>
<div class="form-group">
<label>Message</label>
<textarea rows="3" type="text" formControlName="message" class="form-control" placeholder="Enter message"></textarea>
<div [hidden]= "contactForm.controls.message.valid || contactForm.controls.message.pristine" class="alert alert-danger">
<span *ngIf="!contactForm.controls.message.valid"> Message is required!</span>
</div>
</div>
<br>
<button type="submit" [disabled]="!contactForm.valid" class="btn btn-primary">Submit</button>
</form>
</div>
</section>
这是我的联系人组件TS文件:
userModel = new ContactFormComponent('','','','');
public submitted: boolean;
contactForm: FormGroup;
constructor(private fb: FormBuilder) { }
onSubmit({value, valid} : {value: ContactForm, valid: boolean}){
this.submitted = true;
console.log(value, valid);
}
ngOnInit() {
this.contactForm = this.fb.group({
name:['',[Validators.required, Validators.minLength(3)]],
email:['',[Validators.required]],
subject:['', [Validators.required]],
message:['', [Validators.required]]
});
}
这是在我的 api 文件,我的电子邮件信息模型中:
public class ContactInfo
{
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Subject { get; set; }
[Required]
public string Message { get; set; }
}
到目前为止,这就是我的控制器中的全部内容:
public class emailController : ControllerBase
{
[HttpPost]
public async Task SendEmail([FromBody] ContactInfo contact)
{
}
}
我还没有创建任何 mailkit 端点,我也不知道如何将表单数据发送到 mailkit 端点。
能否请您演示我如何将此表单数据发送到 mailkit 端点,该端点会将提交的数据发送到我的收件箱?
【问题讨论】:
标签: .net angular angular7 asp.net-core-webapi mailkit