Archive for 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)