Archives de novembre 2005
Authentification SMTP
Pour certains serveurs SMTP il est nécessaire de faire une connexion POP avant de pouvoir envoyer un mél (“POP before SMTP” Authentication). Apparement, cela inscrit l’adresse IP de la machine effectuant la connexion dans une table de façon à ensuite autoriser les connexions SMTP (au coup par coup, temporairement ou à vie ?).
Etant donné qu’il n’existe pas de classe System.Pop en ASP.NET 1.1, il reste à trouver une classe POP qui fasse l’affaire. Voir éventuellement l’article “How to POP3 in C#” de Randy Charles Morin.
Amélioration XxxxxSearch – Etape 1
- Renommé les clés des paramètres pour les préfixer par “search” au lieu de “google”, “msn” et “yahoo”,
- Mise en commun de la quasi-totalité du source de viewXxxxxSearch.ascx.cs, à l’exception de celui de ExecuteSearch qui reste spécifique à GoogleSearch, MsnSearch ou YahooSearch,
- Suppression de la table pour la mise en forme des formulaires de recherche (inspiré par Search Form Layout):
<fieldset class="search_form">
<div class="search_cols">
<a href="http://www.google.com/" target="_blank">
<asp:Image id="logoSearch" runat="server"
AlternateText="Google" ImageUrl="google_logo.gif" />
</a>
</div>
<div class="search_cols">
<p>
<asp:textbox id="txtQuery" runat="server"
Columns="35" maxlength="100" />
<asp:button id="btnSearch" runat="server" Text=" Go! " />
</p>
<p>
<asp:radiobuttonlist id="chxRange" runat="server"
RepeatDirection="Horizontal" RepeatLayout="Flow" />
</p>
</div>
</fieldset>
Reste à faire :
Améliorer le fonctionnement en mode GET(cf. étape 2),- Ne plus passer par le postback ?
- Remplacer GoogleSearchService.dll, Msn.API.dll et Yahoo.API.dll par une seule DLL.
Un formulaire simple pour tester l’envoi de mail
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Mail" %>
<script runat="server">
void btnSubmit_Click(Object sender, EventArgs e) {
MailMessage mail = new MailMessage();
mail.To = txtTo.Text;
mail.From = txtFrom.Text;
mail.Subject = txtSubject.Text;
mail.Body = txtMessage.Text;
mail.Priority = MailPriority.High;
mail.BodyFormat = MailFormat.Text;
SmtpMail.SmtpServer = txtSmtpServer.Text;
if (txtSmtpUsername.Text.Trim() != "") {
if (txtSmtpPassword.Text.Trim() != "") {
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", txtSmtpUsername.Text);
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", txtSmtpPassword.Text);
}
}
try {
SmtpMail.Send(mail);
Response.Write("OK!");
} catch (Exception ex) {
Response.Write("KO: " + ex.ToString());
}
}
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mail test</title>
</head>
<body>
<form runat="server">
<ul>
<li>Smtp Server : <asp:TextBox id="txtSmtpServer" runat="server"></asp:TextBox></li>
<li>Smtp Username : <asp:TextBox id="txtSmtpUsername" runat="server"></asp:TextBox></li>
<li>Smtp Password : <asp:TextBox id="txtSmtpPassword" runat="server"></asp:TextBox></li>
<li>From : <asp:TextBox id="txtFrom" runat="server"></asp:TextBox></li>
<li>To : <asp:TextBox id="txtTo" runat="server"></asp:TextBox></li>
<li>Subject : <asp:TextBox id="txtSubject" runat="server"></asp:TextBox></li>
<li>Message : <asp:TextBox id="txtMessage" TextMode="MultiLine" runat="server"></asp:TextBox></li>
</ul>
<asp:Button runat="server" id="btnSubmit" OnClick="btnSubmit_Click" Text="Send"></asp:Button>
</form>
</body>
</html>
(Publié à l’origine sur http://www.bigbold.com/snippets/posts/show/906)
Retrouver un numéro de semaine
public static int GetWeekNumber (DateTime dt) {
CultureInfo culture = CultureInfo.CurrentCulture;
int intWeek = culture.Calendar.GetWeekOfYear(dt, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
return intWeek;
}
(Publié à l’origine sur http://www.bigbold.com/snippets/posts/show/856)