'mail'에 해당되는 글 1건

  1. 2007.05.27 Gmail SMTP를 이용한 ASP.NET Form mail 웹 프로그램
posted by 써니루루 2007. 5. 27. 19:29
Gmail Form

Gmail Form


말은 상당히 거창하다 - _-;;

참고 주소는 http://aspalliance.com/867 요기를 보면되며..

사실 .NET을 해본  사람이라면 .NET에서 제공하는 SMTP메일 클라이언트를 이용해서 메일을 보내는 소스코드가 얼마나 간단히 나오는지 알 것이다.

이 예제도 마찬가지로 상당히 짧은 코드지만 Gmail의 SMTP를 이용해보려고 삽질(?)한 노력이 보일것이다;

하지만 결론부터 얘기하자면 실패했다는것 ㅠㅠ

Google Mail의 기본 SMTP 포트는 465로 되어있는 것을 확인했다.

하지만 메일이 전송되지 않길래 무슨문젤까 하고 google.com의 검색으로 외국을 긁어나가기 시작했다..

포트를 587로 바꾸라고? -_ -;;

바꿔서도 해봤다..

안된다 ㅠㅠ

누가 해결하신분은 도움을 주시길..

물론 gmail의 smtp를 안쓰고 로컬에 있는 iis의 smtp를 이용하면 간단히 해결되는 문제지만;;

목적이 gmail의 smtp를 훔쳐쓰는 것이기에 -ㅁ-;; ㅋㅋ

아래는 본인이 삽질(?)한 소스코드이다~

less..

 


Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Google Form Mailer</title>
</head>
<body>
    <form id="GMailForm" runat="server">
    <div>
   
    <table style="border-collapse:collapse;" width="400" cellpadding="5" cellspacing="0">
        <tr>
            <th colspan="2">
            Google Form mail
            </th>
        </tr>
        <tr>
            <td style="width: 150px; text-align: right">
                E-mail to :
           
            </td>
            <td>
                <asp:TextBox ID="txtMailTo" runat="server"></asp:TextBox></td>
        </tr>
        <tr>
            <td style="width: 150px; text-align: right">
                Subject :</td>
            <td>
                <asp:TextBox ID="txtSubject" runat="server"></asp:TextBox></td>
        </tr>
        <tr>
            <td style="width: 150px; text-align: right">
                Contents :
            </td>
            <td>
                <asp:TextBox ID="txtContents" runat="server" Rows="5" TextMode="MultiLine"></asp:TextBox></td>
        </tr>
        <tr>
            <td align="center" colspan="2">
                <asp:Button ID="btnMailSend" runat="server" OnClick="btnMailSend_Click" Text="Send mail" /></td>
        </tr>
    </table>
   
    </div>
    </form>
</body>
</html>




Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Net;
using System.Net.Mail;

public partial class _Default : System.Web.UI.Page
{
    /// <summary>
    /// E-mail Message class
    /// </summary>
    private MailMessage Mail = null;

    /// <summary>
    /// Network base authentication
    /// </summary>
    private NetworkCredential AuthInfo = null;

    /// <summary>
    /// SMTP Mail Sender
    /// </summary>
    private SmtpClient Smtp = null;

    /// <summary>
    /// Email address
    /// </summary>
    private string sMailFrom = "";

    /// <summary>
    /// smtp login id
    /// </summary>
    private string sLoginID = "";

    /// <summary>
    /// smtp login password
    /// </summary>
    private string sLoginPass = "";

    /// <summary>
    /// Default Page load script
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        sMailFrom = "sunyruru@gmail.com";
        sLoginID = "sunyruru";
        sLoginPass = "****";
    }

    /// <summary>
    /// Mail Send button event script
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnMailSend_Click(object sender, EventArgs e)
    {
        // Email message set
        Mail = new MailMessage(sMailFrom, txtMailTo.Text.Trim());
        Mail.Subject = txtSubject.Text;
        Mail.Body = txtContents.Text;


        // Authentication to SMTP Service
        AuthInfo = new NetworkCredential(sLoginID.Trim() + "@gmail.com", sLoginPass.Trim());

        // SMTP Sender
        Smtp = new SmtpClient();

        try
        {
            Smtp.Host = "smtp.google.com"; // SMTP Host
            Smtp.Port = 465; // SMTP Port
            Smtp.UseDefaultCredentials = false;
            Smtp.Credentials = AuthInfo;
            Smtp.EnableSsl = true; // Use SSL Secure connection

            Smtp.Send(Mail); // Send email message
        }
        catch (System.Net.Mail.SmtpFailedRecipientsException ex) { PrintError(ex.Message); }
        catch (System.Net.Mail.SmtpException ex) { PrintError(ex.Message); }
        catch (ObjectDisposedException ex) { PrintError(ex.Message); }
        catch (InvalidOperationException ex) { PrintError(ex.Message); }
        catch (ArgumentNullException ex) { PrintError(ex.Message); }
        catch (ArgumentOutOfRangeException ex) { PrintError(ex.Message); }
        catch (ArgumentException ex) { PrintError(ex.Message); }
        catch (Exception ex) { PrintError(ex.Message); }
    }

    /// <summary>
    /// Javascript error message popup
    /// </summary>
    /// <param name="ErrorMessage"></param>
    protected void PrintError(string ErrorMessage)
    {
        Response.Write("<script>\n");
        Response.Write("alert('" + ErrorMessage + "')");
        Response.Write("</script>\n");
    }
}



less..


귀차니즘이 있으시다면...

아래 압축파일로 ;;

RURU_test_Mail_GmailSmtp.zip

ASP.NET 웹페이지