Отправка электронной почты с вложением в ASP.Net с простой кодировкой. В этой статье я покажу вам, как вы можете это сделать.
Index.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx.cs" Inherits="_Default" Debug="true" %>
Careers
Index.aspx.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void bttn_Send_Click(object sender, EventArgs e)
{
string from = “info@suryarpraveen-wordpress.com”;
string textTo = “careers@suryarpraveen-wordpress.com”;
using (MailMessage mail = new MailMessage(from, textTo))
{
mail.Subject = “Careers – Surya R Praveen WordPress”;
mail.Body = string.Format(@”
Name: {0}
Email: {1}
Contact: {2}
Job: {3}
Experience: {4}
“, txtName.Text, txtEmail.Text, txtcontact.Text, txtjobTitle.SelectedItem.Text, txtjobExp.SelectedItem.Text);
if (fileUploader.HasFile)
{
string fileName = Path.GetFileName(fileUploader.PostedFile.FileName);
mail.Attachments.Add(new Attachment(fileUploader.PostedFile.InputStream, fileName));
}
mail.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient();
smtp.Host = “mail.suryarpraveen-wordpress.com”;
smtp.EnableSsl = false;
NetworkCredential networkCredential = new NetworkCredential(from, “password@007”);
smtp.UseDefaultCredentials = true;
smtp.Credentials = networkCredential;
smtp.Port = 25;
smtp.Send(mail);
ClientScript.RegisterStartupScript(GetType(), “alert”, “alert(‘Message has been sent successfully.’);”, true);
}
}
}
https://suryarpraveen.wordpress.com/2017/08/22/how-to-send-email-with-attachment-in-asp-net/
Гораздо проще сделать с синтаксисом async/await
:
async function pro(arr) {
const self = {req: {}, res: {}};
for(const f of arr) await f.call(self);
return self;
}
async function pro(arr) {
const self = {req: {}, res: {}};
for(const f of arr) await f.call(self);
return self;
}
const x = function () {
const self = this;
return new Promise(resolve => {
self.req = {key: "value"}
resolve();
})
}
const y = function () {
const self = this;
return new Promise((resolve, reject) => {
console.log(self);
reject("y failed");
})
}
const z = function () {
const self = this;
return new Promise((resolve, reject) => {
console.log('failed');
})
}
pro([x, y, z]).then((self) => {
console.log('final',self);
})
.catch(e => {
console.log('error', e);
});
Вот альтернативный ответ, который просто выполняет обещания подряд, если только обещание не было отклонено, а затем остановлено. Это не использует await, но должно дать вам общее представление о том, как это можно сделать без него, но этот код также был написан очень быстро, поэтому он не самый оптимизированный код.
const x = function() {
return new Promise(resolve => {
resolve('it resolved ma!');
});
};
const y = function() {
const self = this;
return new Promise((resolve, reject) => {
reject("reject");
});
};
const z = function() {
const self = this;
return new Promise((resolve, reject) => {
resolve("never gets executed");
});
};
function runPromises(promises) {
const results = [];
let count = 0;
const executePromise = i => {
count++;
return promises[i]()
.then((response) => {
results.push(response);
if (count !== promises.length) {
executePromise(count);
}
})
.catch((e) => {
results.push(e);
console.log("stop right now, thank you very much");
});
};
if (Array.isArray(promises)) {
executePromise(count);
}
return results;
}
const results = runPromises([x, y, z]);
console.log(results);