J'espère que quelqu'un peut aider. Je souhaite envoyer un courrier électronique à partir de mon compte Azure. Mon nom de domaine est configuré pour fonctionner avec Azure.
Je ne trouvais pas facilement sur le Web comment envoyer un courrier électronique à partir d'un compte Azure. Il a été fait mention de SendGrid, mais il semble que mon compte ne le supporte pas.
Quelqu'un peut-il me guider s'il vous plaît comment envoyer un courrier électronique à partir d'un site Web hébergé sur Azure?
Je sais que ceci est un ancien message, mais je viens de m'inscrire à Azure et je reçois gratuitement 25 000 e-mails par mois via SendGrid. Ces instructions sont excellentes. J'étais opérationnel en quelques minutes:
Comment envoyer un email en utilisant SendGrid avec Azure
Les clients Azure peuvent déverrouiller 25 000 e-mails gratuits chaque mois.
L'envoi depuis un tiers, SMTP n'est pas limité ou spécifique à Azure. À l'aide de System.Net.Mail, créez votre message, configurez votre client SMTP, envoyez le courrier électronique:
// create the message
var msg = new MailMessage();
msg.From = new MailAddress("[email protected]");
msg.To.Add(strTo);
msg.Subject = strSubject;
msg.IsBodyHtml = true;
msg.Body = strMessage;
// configure the smtp server
var smtp = new SmtpClient("YourSMTPServer");
var = new System.Net.NetworkCredential("YourSMTPServerUserName", "YourSMTPServerPassword");
// send the message
smtp.Send(msg);
Si vous recherchez des alternatives ESP, vous devriez jeter un coup d'œil à Mailjet pour Microsoft Azure aussi! En tant que fournisseur global de services de messagerie et d'infrastructure, envoyer, envoyer et suivre des e-mails transactionnels et marketing via leurs API, relais SMTP ou interface utilisateur, le tout à partir d'une seule et même plate-forme, à la fois pour les développeurs et les propriétaires de courriers électroniques.
Avertissement: Je travaille chez Mailjet en tant qu’évangéliste développeur.
Pour ce faire, "si vous avez un compte Office 365", utilisez connecteur Office 365 Outlook intégré à Azure Logic App ,
J'espère que cela aide quelqu'un!
Pour les personnes souhaitant utiliser le .NET SmtpClient intégré plutôt que la bibliothèque client SendGrid (je ne suis pas sûr que ce soit l'intention du PO), je ne pouvais pas le faire fonctionner à moins d'utiliser apikey
comme nom d'utilisateur et la clé api elle-même en tant que mot de passe comme indiqué ici .
<mailSettings>
<smtp>
<network Host="smtp.sendgrid.net" port="587" userName="apikey" password="<your key goes here>" />
</smtp>
</mailSettings>
Je ne recommanderais jamais SendGrid. J'ai accepté leur offre de compte gratuite et je n'ai jamais réussi à envoyer un seul email - tout a été bloqué - j'ai passé des jours à essayer de le résoudre. Quand j'ai demandé pourquoi ils avaient été bloqués, ils m'ont dit que les comptes gratuits partagent une adresse IP et que si un compte abuse de cette adresse IP en envoyant du spam, tous les utilisateurs de l'adresse IP partagée sont bloqués, ce qui est totalement inutile. De plus, si vous les utilisez, ne stockez pas votre clé de courrier électronique dans un référentiel public git, car tout le monde peut lire la clé à partir de cet emplacement (à l'aide d'un robot) et utiliser votre compte payant pour envoyer des e-mails en masse.
Un service de messagerie gratuit que j'utilise de manière fiable avec un site Web Azure consiste à utiliser mon compte Gmail (messagerie Google). Ce compte peut être utilisé avec des applications. Une fois activé, un courrier électronique peut être envoyé à partir de votre site Web Azure. Le collage dans l'exemple de code d'envoi en tant que port à utiliser (587) n'est pas évident.
public static void SendMail(MailMessage Message)
{
SmtpClient client = new SmtpClient();
client.Host = EnvironmentSecret.Instance.SmtpHost; // smtp.googlemail.com
client.Port = 587;
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.Credentials = new NetworkCredential(
EnvironmentSecret.Instance.NetworkCredentialUserName,
EnvironmentSecret.Instance.NetworkCredentialPassword);
client.Send(Message);
}