Line 1: using System;
Line 2: using System.Collections.Generic;
Line 3: using System.Configuration;
Line 4: using System.IO;
Line 5: using System.Linq;
Line 6: using System.Net;
Line 7: using System.Net.Mail;
Line 8: using System.Text;
Line 9: using System.Web;
Line 10: using System.Web.UI;
Line 11:
Line 12: /// <summary>
Line 13: /// Descrizione di riepilogo per MySMTPClass
Line 14: /// </summary>
Line 15: namespace MySMPTClass
Line 16: {
Line 17: public class MySMTPObj
Line 18: {
Line 19: string TestServer = "192.168.13.4";
Line 20: string TestUsername = "smtpweb@ipsnet.it";
Line 21: string TestPassword = "#5Mtp5MarterMail#";
Line 22:
Line 23: string DefaultServer = "smtp.revenge.to.it";
Line 24: string DefaultUsername = "smtpweb@revenge.to.it";
Line 25: string DefaultPassword = "#5Mtp5MarterMail#";
Line 26: int DefaultPorta = 25;
Line 27:
Line 28: public MySMTPObj()
Line 29: {
Line 30: //
Line 31: // TODO: aggiungere qui la logica del costruttore
Line 32: //
Line 33: }
Line 34:
Line 35: //~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► METHODS ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~► ~~►
Line 36: public string InvioEmail(StringBuilder EmailBody,
Line 37: string NomeMittente,
Line 38: string EmailMittente,
Line 39: string NomeDestinatario,
Line 40: string EmailDestinatario,
Line 41: string Subject,
Line 42: Dictionary<string, string> CC,
Line 43: Dictionary<string, string> BCC,
Line 44: List<KeyValuePair<MemoryStream, string>> Attachments,
Line 45: string Server = "smtp.revenge.to.it",
Line 46: int Porta = 25,
Line 47: string Username = "smtpweb@revenge.to.it",
Line 48: string Password = "#5Mtp5MarterMail#",
Line 49: bool SSL = false,
Line 50: bool impostaTEST=false)
Line 51: {
Line 52: string Result = "";
Line 53:
Line 54: //~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ Credentials setup ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~
Line 55:
Line 56: if(Username.Length<=0)Username= DefaultUsername;
Line 57: if(Password.Length<=0)Password = DefaultPassword;
Line 58: if (Server.Length <= 0) Server = DefaultServer;
Line 59: if (Porta <= 0) Porta = DefaultPorta;
Line 60: //~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~
Line 61:
Line 62:
Line 63: string cMachineName = HttpContext.Current.Server.MachineName.ToString().ToLower();
Line 64: string cLogoURL = ConfigurationManager.AppSettings["Url_Test"]; // in Locale
Line 65: bool IsOnline = cMachineName.IndexOf("fs") < 0 && cMachineName.IndexOf("vd06") < 0 && cMachineName.IndexOf("vd03") < 0 && cMachineName.IndexOf("vd07") < 0;
Line 66:
Line 67: bool Test = EmailDestinatario.ToLower().IndexOf("@ipsnet.it") > 0;
Line 68:
Line 69: string cMailServer = "";
Line 70: MailAddress From = new MailAddress(EmailMittente, NomeMittente, System.Text.Encoding.UTF8);
Line 71: MailAddress To = null;
Line 72:
Line 73: if (IsOnline) // è online !
Line 74: cLogoURL = ConfigurationManager.AppSettings["Url_Online"]; // Locale
Line 75:
Line 76: NetworkCredential NetworkCred = new NetworkCredential();
Line 77:
Line 78: if ((IsOnline || !Test) && !impostaTEST) // è online !
Line 79: {
Line 80: To = new MailAddress(EmailDestinatario, NomeDestinatario, System.Text.Encoding.UTF8);
Line 81: cMailServer = Server;
Line 82: NetworkCred.UserName = Username;
Line 83: NetworkCred.Password = Password;
Line 84: }
Line 85: else // NON è online !
Line 86: {
Line 87: To = new MailAddress("test@ipsnet.it", "User Test", System.Text.Encoding.UTF8);
Line 88: cMailServer = TestServer;
Line 89: NetworkCred.UserName = TestUsername;
Line 90: NetworkCred.Password = TestPassword;
Line 91: }
Line 92:
Line 93: // Instantiate a New instance of MailMessage
Line 94: MailMessage objMailer = new MailMessage();
Line 95: objMailer.From = From;
Line 96: objMailer.To.Add(To);
Line 97:
Line 98: if(BCC != null && BCC.Count > 0)
Line 99: {
Line 100: foreach(var item in BCC)
Line 101: {
Line 102: MailAddress ThisBcc = new MailAddress(item.Key, item.Value, System.Text.Encoding.UTF8);
Line 103: objMailer.Bcc.Add(ThisBcc);
Line 104: }
Line 105: }
Line 106: if (CC != null && CC.Count > 0)
Line 107: {
Line 108: foreach (var item in CC)
Line 109: {
Line 110: MailAddress ThisCc = new MailAddress(item.Key, item.Value, System.Text.Encoding.UTF8);
Line 111: objMailer.CC.Add(ThisCc);
Line 112: }
Line 113: }
Line 114:
Line 115: if (Attachments != null && Attachments.Count>0)
Line 116: {
Line 117: foreach (var item in Attachments)
Line 118: {
Line 119: string fileName = "" + item.Key;
Line 120: string extension = Path.GetExtension(fileName);
Line 121:
Line 122: objMailer.Attachments.Add(new Attachment(item.Key, item.Value, GetMimeType(extension)));
Line 123: }
Line 124: }
Line 125:
Line 126: objMailer.Priority = MailPriority.Normal; // Set additional options
Line 127: objMailer.IsBodyHtml = true; // Text/HTML
Line 128:
Line 129: // Set the subjet and body text
Line 130: objMailer.Subject = Subject;
Line 131: objMailer.SubjectEncoding = System.Text.Encoding.UTF8;
Line 132:
Line 133: objMailer.Body = "" + EmailBody;
Line 134: objMailer.BodyEncoding = System.Text.Encoding.UTF8;
Line 135:
Line 136: // Instantiate a new instance of SmtpClient
Line 137: SmtpClient objSmtp = new SmtpClient();
Line 138: objSmtp.Host = cMailServer;
Line 139:
Line 140: objSmtp.EnableSsl = SSL;
Line 141: objSmtp.UseDefaultCredentials = true;
Line 142: objSmtp.Credentials = NetworkCred;
Line 143: objSmtp.Port = Porta;
Line 144:
Line 145: //Try sending email
Line 146: try
Line 147: {
Line 148: objSmtp.Send(objMailer);
Line 149: Result = "OK";
Line 150: }
Line 151: catch (SmtpException smtpExc)
Line 152: {
Line 153: Result = "smtp_exc;stack_trace:" + smtpExc.StackTrace + ";message:" + smtpExc.Message + ";inner_exc:" + smtpExc.InnerException;
Line 154: }
Line 155: catch (Exception Exception)
Line 156: {
Line 157: Result = "generic_exc;stack_trace:" + Exception.StackTrace + ";message:" + Exception.Message + ";inner_exc:" + Exception.InnerException;
Line 158: }
Line 159:
Line 160: return Result;
Line 161: }
Line 162:
Line 163: public static IDictionary<string, string> _mappings = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase)
Line 164: {
Line 165: #region Big freaking list of mime types
Line 166: // combination of values from Windows 7 Registry and
Line 167: // from C:\Windows\System32\inetsrv\config\applicationHost.config
Line 168: // some added, including .7z and .dat
Line 169: {".323", "text/h323"},
Line 170: {".3g2", "video/3gpp2"},
Line 171: {".3gp", "video/3gpp"},
Line 172: {".3gp2", "video/3gpp2"},
Line 173: {".3gpp", "video/3gpp"},
Line 174: {".7z", "application/x-7z-compressed"},
Line 175: {".aa", "audio/audible"},
Line 176: {".AAC", "audio/aac"},
Line 177: {".aaf", "application/octet-stream"},
Line 178: {".aax", "audio/vnd.audible.aax"},
Line 179: {".ac3", "audio/ac3"},
Line 180: {".aca", "application/octet-stream"},
Line 181: {".accda", "application/msaccess.addin"},
Line 182: {".accdb", "application/msaccess"},
Line 183: {".accdc", "application/msaccess.cab"},
Line 184: {".accde", "application/msaccess"},
Line 185: {".accdr", "application/msaccess.runtime"},
Line 186: {".accdt", "application/msaccess"},
Line 187: {".accdw", "application/msaccess.webapplication"},
Line 188: {".accft", "application/msaccess.ftemplate"},
Line 189: {".acx", "application/internet-property-stream"},
Line 190: {".AddIn", "text/xml"},
Line 191: {".ade", "application/msaccess"},
Line 192: {".adobebridge", "application/x-bridge-url"},
Line 193: {".adp", "application/msaccess"},
Line 194: {".ADT", "audio/vnd.dlna.adts"},
Line 195: {".ADTS", "audio/aac"},
Line 196: {".afm", "application/octet-stream"},
Line 197: {".ai", "application/postscript"},
Line 198: {".aif", "audio/x-aiff"},
Line 199: {".aifc", "audio/aiff"},
Line 200: {".aiff", "audio/aiff"},
Line 201: {".air", "application/vnd.adobe.air-application-installer-package+zip"},
Line 202: {".amc", "application/x-mpeg"},
Line 203: {".application", "application/x-ms-application"},
Line 204: {".art", "image/x-jg"},
Line 205: {".asa", "application/xml"},
Line 206: {".asax", "application/xml"},
Line 207: {".ascx", "application/xml"},
Line 208: {".asd", "application/octet-stream"},
Line 209: {".asf", "video/x-ms-asf"},
Line 210: {".ashx", "application/xml"},
Line 211: {".asi", "application/octet-stream"},
Line 212: {".asm", "text/plain"},
Line 213: {".asmx", "application/xml"},
Line 214: {".aspx", "application/xml"},
Line 215: {".asr", "video/x-ms-asf"},
Line 216: {".asx", "video/x-ms-asf"},
Line 217: {".atom", "application/atom+xml"},
Line 218: {".au", "audio/basic"},
Line 219: {".avi", "video/x-msvideo"},
Line 220: {".axs", "application/olescript"},
Line 221: {".bas", "text/plain"},
Line 222: {".bcpio", "application/x-bcpio"},
Line 223: {".bin", "application/octet-stream"},
Line 224: {".bmp", "image/bmp"},
Line 225: {".c", "text/plain"},
Line 226: {".cab", "application/octet-stream"},
Line 227: {".caf", "audio/x-caf"},
Line 228: {".calx", "application/vnd.ms-office.calx"},
Line 229: {".cat", "application/vnd.ms-pki.seccat"},
Line 230: {".cc", "text/plain"},
Line 231: {".cd", "text/plain"},
Line 232: {".cdda", "audio/aiff"},
Line 233: {".cdf", "application/x-cdf"},
Line 234: {".cer", "application/x-x509-ca-cert"},
Line 235: {".chm", "application/octet-stream"},
Line 236: {".class", "application/x-java-applet"},
Line 237: {".clp", "application/x-msclip"},
Line 238: {".cmx", "image/x-cmx"},
Line 239: {".cnf", "text/plain"},
Line 240: {".cod", "image/cis-cod"},
Line 241: {".config", "application/xml"},
Line 242: {".contact", "text/x-ms-contact"},
Line 243: {".coverage", "application/xml"},
Line 244: {".cpio", "application/x-cpio"},
Line 245: {".cpp", "text/plain"},
Line 246: {".crd", "application/x-mscardfile"},
Line 247: {".crl", "application/pkix-crl"},
Line 248: {".crt", "application/x-x509-ca-cert"},
Line 249: {".cs", "text/plain"},
Line 250: {".csdproj", "text/plain"},
Line 251: {".csh", "application/x-csh"},
Line 252: {".csproj", "text/plain"},
Line 253: {".css", "text/css"},
Line 254: {".csv", "text/csv"},
Line 255: {".cur", "application/octet-stream"},
Line 256: {".cxx", "text/plain"},
Line 257: {".dat", "application/octet-stream"},
Line 258: {".datasource", "application/xml"},
Line 259: {".dbproj", "text/plain"},
Line 260: {".dcr", "application/x-director"},
Line 261: {".def", "text/plain"},
Line 262: {".deploy", "application/octet-stream"},
Line 263: {".der", "application/x-x509-ca-cert"},
Line 264: {".dgml", "application/xml"},
Line 265: {".dib", "image/bmp"},
Line 266: {".dif", "video/x-dv"},
Line 267: {".dir", "application/x-director"},
Line 268: {".disco", "text/xml"},
Line 269: {".dll", "application/x-msdownload"},
Line 270: {".dll.config", "text/xml"},
Line 271: {".dlm", "text/dlm"},
Line 272: {".doc", "application/msword"},
Line 273: {".docm", "application/vnd.ms-word.document.macroEnabled.12"},
Line 274: {".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"},
Line 275: {".dot", "application/msword"},
Line 276: {".dotm", "application/vnd.ms-word.template.macroEnabled.12"},
Line 277: {".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"},
Line 278: {".dsp", "application/octet-stream"},
Line 279: {".dsw", "text/plain"},
Line 280: {".dtd", "text/xml"},
Line 281: {".dtsConfig", "text/xml"},
Line 282: {".dv", "video/x-dv"},
Line 283: {".dvi", "application/x-dvi"},
Line 284: {".dwf", "drawing/x-dwf"},
Line 285: {".dwp", "application/octet-stream"},
Line 286: {".dxr", "application/x-director"},
Line 287: {".eml", "message/rfc822"},
Line 288: {".emz", "application/octet-stream"},
Line 289: {".eot", "application/octet-stream"},
Line 290: {".eps", "application/postscript"},
Line 291: {".etl", "application/etl"},
Line 292: {".etx", "text/x-setext"},
Line 293: {".evy", "application/envoy"},
Line 294: {".exe", "application/octet-stream"},
Line 295: {".exe.config", "text/xml"},
Line 296: {".fdf", "application/vnd.fdf"},
Line 297: {".fif", "application/fractals"},
Line 298: {".filters", "Application/xml"},
Line 299: {".fla", "application/octet-stream"},
Line 300: {".flr", "x-world/x-vrml"},
Line 301: {".flv", "video/x-flv"},
Line 302: {".fsscript", "application/fsharp-script"},
Line 303: {".fsx", "application/fsharp-script"},
Line 304: {".generictest", "application/xml"},
Line 305: {".gif", "image/gif"},
Line 306: {".group", "text/x-ms-group"},
Line 307: {".gsm", "audio/x-gsm"},
Line 308: {".gtar", "application/x-gtar"},
Line 309: {".gz", "application/x-gzip"},
Line 310: {".h", "text/plain"},
Line 311: {".hdf", "application/x-hdf"},
Line 312: {".hdml", "text/x-hdml"},
Line 313: {".hhc", "application/x-oleobject"},
Line 314: {".hhk", "application/octet-stream"},
Line 315: {".hhp", "application/octet-stream"},
Line 316: {".hlp", "application/winhlp"},
Line 317: {".hpp", "text/plain"},
Line 318: {".hqx", "application/mac-binhex40"},
Line 319: {".hta", "application/hta"},
Line 320: {".htc", "text/x-component"},
Line 321: {".htm", "text/html"},
Line 322: {".html", "text/html"},
Line 323: {".htt", "text/webviewhtml"},
Line 324: {".hxa", "application/xml"},
Line 325: {".hxc", "application/xml"},
Line 326: {".hxd", "application/octet-stream"},
Line 327: {".hxe", "application/xml"},
Line 328: {".hxf", "application/xml"},
Line 329: {".hxh", "application/octet-stream"},
Line 330: {".hxi", "application/octet-stream"},
Line 331: {".hxk", "application/xml"},
Line 332: {".hxq", "application/octet-stream"},
Line 333: {".hxr", "application/octet-stream"},
Line 334: {".hxs", "application/octet-stream"},
Line 335: {".hxt", "text/html"},
Line 336: {".hxv", "application/xml"},
Line 337: {".hxw", "application/octet-stream"},
Line 338: {".hxx", "text/plain"},
Line 339: {".i", "text/plain"},
Line 340: {".ico", "image/x-icon"},
Line 341: {".ics", "application/octet-stream"},
Line 342: {".idl", "text/plain"},
Line 343: {".ief", "image/ief"},
Line 344: {".iii", "application/x-iphone"},
Line 345: {".inc", "text/plain"},
Line 346: {".inf", "application/octet-stream"},
Line 347: {".inl", "text/plain"},
Line 348: {".ins", "application/x-internet-signup"},
Line 349: {".ipa", "application/x-itunes-ipa"},
Line 350: {".ipg", "application/x-itunes-ipg"},
Line 351: {".ipproj", "text/plain"},
Line 352: {".ipsw", "application/x-itunes-ipsw"},
Line 353: {".iqy", "text/x-ms-iqy"},
Line 354: {".isp", "application/x-internet-signup"},
Line 355: {".ite", "application/x-itunes-ite"},
Line 356: {".itlp", "application/x-itunes-itlp"},
Line 357: {".itms", "application/x-itunes-itms"},
Line 358: {".itpc", "application/x-itunes-itpc"},
Line 359: {".IVF", "video/x-ivf"},
Line 360: {".jar", "application/java-archive"},
Line 361: {".java", "application/octet-stream"},
Line 362: {".jck", "application/liquidmotion"},
Line 363: {".jcz", "application/liquidmotion"},
Line 364: {".jfif", "image/pjpeg"},
Line 365: {".jnlp", "application/x-java-jnlp-file"},
Line 366: {".jpb", "application/octet-stream"},
Line 367: {".jpe", "image/jpeg"},
Line 368: {".jpeg", "image/jpeg"},
Line 369: {".jpg", "image/jpeg"},
Line 370: {".js", "application/x-javascript"},
Line 371: {".json", "application/json"},
Line 372: {".jsx", "text/jscript"},
Line 373: {".jsxbin", "text/plain"},
Line 374: {".latex", "application/x-latex"},
Line 375: {".library-ms", "application/windows-library+xml"},
Line 376: {".lit", "application/x-ms-reader"},
Line 377: {".loadtest", "application/xml"},
Line 378: {".lpk", "application/octet-stream"},
Line 379: {".lsf", "video/x-la-asf"},
Line 380: {".lst", "text/plain"},
Line 381: {".lsx", "video/x-la-asf"},
Line 382: {".lzh", "application/octet-stream"},
Line 383: {".m13", "application/x-msmediaview"},
Line 384: {".m14", "application/x-msmediaview"},
Line 385: {".m1v", "video/mpeg"},
Line 386: {".m2t", "video/vnd.dlna.mpeg-tts"},
Line 387: {".m2ts", "video/vnd.dlna.mpeg-tts"},
Line 388: {".m2v", "video/mpeg"},
Line 389: {".m3u", "audio/x-mpegurl"},
Line 390: {".m3u8", "audio/x-mpegurl"},
Line 391: {".m4a", "audio/m4a"},
Line 392: {".m4b", "audio/m4b"},
Line 393: {".m4p", "audio/m4p"},
Line 394: {".m4r", "audio/x-m4r"},
Line 395: {".m4v", "video/x-m4v"},
Line 396: {".mac", "image/x-macpaint"},
Line 397: {".mak", "text/plain"},
Line 398: {".man", "application/x-troff-man"},
Line 399: {".manifest", "application/x-ms-manifest"},
Line 400: {".map", "text/plain"},
Line 401: {".master", "application/xml"},
Line 402: {".mda", "application/msaccess"},
Line 403: {".mdb", "application/x-msaccess"},
Line 404: {".mde", "application/msaccess"},
Line 405: {".mdp", "application/octet-stream"},
Line 406: {".me", "application/x-troff-me"},
Line 407: {".mfp", "application/x-shockwave-flash"},
Line 408: {".mht", "message/rfc822"},
Line 409: {".mhtml", "message/rfc822"},
Line 410: {".mid", "audio/mid"},
Line 411: {".midi", "audio/mid"},
Line 412: {".mix", "application/octet-stream"},
Line 413: {".mk", "text/plain"},
Line 414: {".mmf", "application/x-smaf"},
Line 415: {".mno", "text/xml"},
Line 416: {".mny", "application/x-msmoney"},
Line 417: {".mod", "video/mpeg"},
Line 418: {".mov", "video/quicktime"},
Line 419: {".movie", "video/x-sgi-movie"},
Line 420: {".mp2", "video/mpeg"},
Line 421: {".mp2v", "video/mpeg"},
Line 422: {".mp3", "audio/mpeg"},
Line 423: {".mp4", "video/mp4"},
Line 424: {".mp4v", "video/mp4"},
Line 425: {".mpa", "video/mpeg"},
Line 426: {".mpe", "video/mpeg"},
Line 427: {".mpeg", "video/mpeg"},
Line 428: {".mpf", "application/vnd.ms-mediapackage"},
Line 429: {".mpg", "video/mpeg"},
Line 430: {".mpp", "application/vnd.ms-project"},
Line 431: {".mpv2", "video/mpeg"},
Line 432: {".mqv", "video/quicktime"},
Line 433: {".ms", "application/x-troff-ms"},
Line 434: {".msi", "application/octet-stream"},
Line 435: {".mso", "application/octet-stream"},
Line 436: {".mts", "video/vnd.dlna.mpeg-tts"},
Line 437: {".mtx", "application/xml"},
Line 438: {".mvb", "application/x-msmediaview"},
Line 439: {".mvc", "application/x-miva-compiled"},
Line 440: {".mxp", "application/x-mmxp"},
Line 441: {".nc", "application/x-netcdf"},
Line 442: {".nsc", "video/x-ms-asf"},
Line 443: {".nws", "message/rfc822"},
Line 444: {".ocx", "application/octet-stream"},
Line 445: {".oda", "application/oda"},
Line 446: {".odc", "text/x-ms-odc"},
Line 447: {".odh", "text/plain"},
Line 448: {".odl", "text/plain"},
Line 449: {".odp", "application/vnd.oasis.opendocument.presentation"},
Line 450: {".ods", "application/oleobject"},
Line 451: {".odt", "application/vnd.oasis.opendocument.text"},
Line 452: {".one", "application/onenote"},
Line 453: {".onea", "application/onenote"},
Line 454: {".onepkg", "application/onenote"},
Line 455: {".onetmp", "application/onenote"},
Line 456: {".onetoc", "application/onenote"},
Line 457: {".onetoc2", "application/onenote"},
Line 458: {".orderedtest", "application/xml"},
Line 459: {".osdx", "application/opensearchdescription+xml"},
Line 460: {".p10", "application/pkcs10"},
Line 461: {".p12", "application/x-pkcs12"},
Line 462: {".p7b", "application/x-pkcs7-certificates"},
Line 463: {".p7c", "application/pkcs7-mime"},
Line 464: {".p7m", "application/pkcs7-mime"},
Line 465: {".p7r", "application/x-pkcs7-certreqresp"},
Line 466: {".p7s", "application/pkcs7-signature"},
Line 467: {".pbm", "image/x-portable-bitmap"},
Line 468: {".pcast", "application/x-podcast"},
Line 469: {".pct", "image/pict"},
Line 470: {".pcx", "application/octet-stream"},
Line 471: {".pcz", "application/octet-stream"},
Line 472: {".pdf", "application/pdf"},
Line 473: {".pfb", "application/octet-stream"},
Line 474: {".pfm", "application/octet-stream"},
Line 475: {".pfx", "application/x-pkcs12"},
Line 476: {".pgm", "image/x-portable-graymap"},
Line 477: {".pic", "image/pict"},
Line 478: {".pict", "image/pict"},
Line 479: {".pkgdef", "text/plain"},
Line 480: {".pkgundef", "text/plain"},
Line 481: {".pko", "application/vnd.ms-pki.pko"},
Line 482: {".pls", "audio/scpls"},
Line 483: {".pma", "application/x-perfmon"},
Line 484: {".pmc", "application/x-perfmon"},
Line 485: {".pml", "application/x-perfmon"},
Line 486: {".pmr", "application/x-perfmon"},
Line 487: {".pmw", "application/x-perfmon"},
Line 488: {".png", "image/png"},
Line 489: {".pnm", "image/x-portable-anymap"},
Line 490: {".pnt", "image/x-macpaint"},
Line 491: {".pntg", "image/x-macpaint"},
Line 492: {".pnz", "image/png"},
Line 493: {".pot", "application/vnd.ms-powerpoint"},
Line 494: {".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"},
Line 495: {".potx", "application/vnd.openxmlformats-officedocument.presentationml.template"},
Line 496: {".ppa", "application/vnd.ms-powerpoint"},
Line 497: {".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"},
Line 498: {".ppm", "image/x-portable-pixmap"},
Line 499: {".pps", "application/vnd.ms-powerpoint"},
Line 500: {".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"},
Line 501: {".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"},
Line 502: {".ppt", "application/vnd.ms-powerpoint"},
Line 503: {".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"},
Line 504: {".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"},
Line 505: {".prf", "application/pics-rules"},
Line 506: {".prm", "application/octet-stream"},
Line 507: {".prx", "application/octet-stream"},
Line 508: {".ps", "application/postscript"},
Line 509: {".psc1", "application/PowerShell"},
Line 510: {".psd", "application/octet-stream"},
Line 511: {".psess", "application/xml"},
Line 512: {".psm", "application/octet-stream"},
Line 513: {".psp", "application/octet-stream"},
Line 514: {".pub", "application/x-mspublisher"},
Line 515: {".pwz", "application/vnd.ms-powerpoint"},
Line 516: {".qht", "text/x-html-insertion"},
Line 517: {".qhtm", "text/x-html-insertion"},
Line 518: {".qt", "video/quicktime"},
Line 519: {".qti", "image/x-quicktime"},
Line 520: {".qtif", "image/x-quicktime"},
Line 521: {".qtl", "application/x-quicktimeplayer"},
Line 522: {".qxd", "application/octet-stream"},
Line 523: {".ra", "audio/x-pn-realaudio"},
Line 524: {".ram", "audio/x-pn-realaudio"},
Line 525: {".rar", "application/octet-stream"},
Line 526: {".ras", "image/x-cmu-raster"},
Line 527: {".rat", "application/rat-file"},
Line 528: {".rc", "text/plain"},
Line 529: {".rc2", "text/plain"},
Line 530: {".rct", "text/plain"},
Line 531: {".rdlc", "application/xml"},
Line 532: {".resx", "application/xml"},
Line 533: {".rf", "image/vnd.rn-realflash"},
Line 534: {".rgb", "image/x-rgb"},
Line 535: {".rgs", "text/plain"},
Line 536: {".rm", "application/vnd.rn-realmedia"},
Line 537: {".rmi", "audio/mid"},
Line 538: {".rmp", "application/vnd.rn-rn_music_package"},
Line 539: {".roff", "application/x-troff"},
Line 540: {".rpm", "audio/x-pn-realaudio-plugin"},
Line 541: {".rqy", "text/x-ms-rqy"},
Line 542: {".rtf", "application/rtf"},
Line 543: {".rtx", "text/richtext"},
Line 544: {".ruleset", "application/xml"},
Line 545: {".s", "text/plain"},
Line 546: {".safariextz", "application/x-safari-safariextz"},
Line 547: {".scd", "application/x-msschedule"},
Line 548: {".sct", "text/scriptlet"},
Line 549: {".sd2", "audio/x-sd2"},
Line 550: {".sdp", "application/sdp"},
Line 551: {".sea", "application/octet-stream"},
Line 552: {".searchConnector-ms", "application/windows-search-connector+xml"},
Line 553: {".setpay", "application/set-payment-initiation"},
Line 554: {".setreg", "application/set-registration-initiation"},
Line 555: {".settings", "application/xml"},
Line 556: {".sgimb", "application/x-sgimb"},
Line 557: {".sgml", "text/sgml"},
Line 558: {".sh", "application/x-sh"},
Line 559: {".shar", "application/x-shar"},
Line 560: {".shtml", "text/html"},
Line 561: {".sit", "application/x-stuffit"},
Line 562: {".sitemap", "application/xml"},
Line 563: {".skin", "application/xml"},
Line 564: {".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"},
Line 565: {".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"},
Line 566: {".slk", "application/vnd.ms-excel"},
Line 567: {".sln", "text/plain"},
Line 568: {".slupkg-ms", "application/x-ms-license"},
Line 569: {".smd", "audio/x-smd"},
Line 570: {".smi", "application/octet-stream"},
Line 571: {".smx", "audio/x-smd"},
Line 572: {".smz", "audio/x-smd"},
Line 573: {".snd", "audio/basic"},
Line 574: {".snippet", "application/xml"},
Line 575: {".snp", "application/octet-stream"},
Line 576: {".sol", "text/plain"},
Line 577: {".sor", "text/plain"},
Line 578: {".spc", "application/x-pkcs7-certificates"},
Line 579: {".spl", "application/futuresplash"},
Line 580: {".src", "application/x-wais-source"},
Line 581: {".srf", "text/plain"},
Line 582: {".SSISDeploymentManifest", "text/xml"},
Line 583: {".ssm", "application/streamingmedia"},
Line 584: {".sst", "application/vnd.ms-pki.certstore"},
Line 585: {".stl", "application/vnd.ms-pki.stl"},
Line 586: {".sv4cpio", "application/x-sv4cpio"},
Line 587: {".sv4crc", "application/x-sv4crc"},
Line 588: {".svc", "application/xml"},
Line 589: {".swf", "application/x-shockwave-flash"},
Line 590: {".t", "application/x-troff"},
Line 591: {".tar", "application/x-tar"},
Line 592: {".tcl", "application/x-tcl"},
Line 593: {".testrunconfig", "application/xml"},
Line 594: {".testsettings", "application/xml"},
Line 595: {".tex", "application/x-tex"},
Line 596: {".texi", "application/x-texinfo"},
Line 597: {".texinfo", "application/x-texinfo"},
Line 598: {".tgz", "application/x-compressed"},
Line 599: {".thmx", "application/vnd.ms-officetheme"},
Line 600: {".thn", "application/octet-stream"},
Line 601: {".tif", "image/tiff"},
Line 602: {".tiff", "image/tiff"},
Line 603: {".tlh", "text/plain"},
Line 604: {".tli", "text/plain"},
Line 605: {".toc", "application/octet-stream"},
Line 606: {".tr", "application/x-troff"},
Line 607: {".trm", "application/x-msterminal"},
Line 608: {".trx", "application/xml"},
Line 609: {".ts", "video/vnd.dlna.mpeg-tts"},
Line 610: {".tsv", "text/tab-separated-values"},
Line 611: {".ttf", "application/octet-stream"},
Line 612: {".tts", "video/vnd.dlna.mpeg-tts"},
Line 613: {".txt", "text/plain"},
Line 614: {".u32", "application/octet-stream"},
Line 615: {".uls", "text/iuls"},
Line 616: {".user", "text/plain"},
Line 617: {".ustar", "application/x-ustar"},
Line 618: {".vb", "text/plain"},
Line 619: {".vbdproj", "text/plain"},
Line 620: {".vbk", "video/mpeg"},
Line 621: {".vbproj", "text/plain"},
Line 622: {".vbs", "text/vbscript"},
Line 623: {".vcf", "text/x-vcard"},
Line 624: {".vcproj", "Application/xml"},
Line 625: {".vcs", "text/plain"},
Line 626: {".vcxproj", "Application/xml"},
Line 627: {".vddproj", "text/plain"},
Line 628: {".vdp", "text/plain"},
Line 629: {".vdproj", "text/plain"},
Line 630: {".vdx", "application/vnd.ms-visio.viewer"},
Line 631: {".vml", "text/xml"},
Line 632: {".vscontent", "application/xml"},
Line 633: {".vsct", "text/xml"},
Line 634: {".vsd", "application/vnd.visio"},
Line 635: {".vsi", "application/ms-vsi"},
Line 636: {".vsix", "application/vsix"},
Line 637: {".vsixlangpack", "text/xml"},
Line 638: {".vsixmanifest", "text/xml"},
Line 639: {".vsmdi", "application/xml"},
Line 640: {".vspscc", "text/plain"},
Line 641: {".vss", "application/vnd.visio"},
Line 642: {".vsscc", "text/plain"},
Line 643: {".vssettings", "text/xml"},
Line 644: {".vssscc", "text/plain"},
Line 645: {".vst", "application/vnd.visio"},
Line 646: {".vstemplate", "text/xml"},
Line 647: {".vsto", "application/x-ms-vsto"},
Line 648: {".vsw", "application/vnd.visio"},
Line 649: {".vsx", "application/vnd.visio"},
Line 650: {".vtx", "application/vnd.visio"},
Line 651: {".wav", "audio/wav"},
Line 652: {".wave", "audio/wav"},
Line 653: {".wax", "audio/x-ms-wax"},
Line 654: {".wbk", "application/msword"},
Line 655: {".wbmp", "image/vnd.wap.wbmp"},
Line 656: {".wcm", "application/vnd.ms-works"},
Line 657: {".wdb", "application/vnd.ms-works"},
Line 658: {".wdp", "image/vnd.ms-photo"},
Line 659: {".webarchive", "application/x-safari-webarchive"},
Line 660: {".webtest", "application/xml"},
Line 661: {".wiq", "application/xml"},
Line 662: {".wiz", "application/msword"},
Line 663: {".wks", "application/vnd.ms-works"},
Line 664: {".WLMP", "application/wlmoviemaker"},
Line 665: {".wlpginstall", "application/x-wlpg-detect"},
Line 666: {".wlpginstall3", "application/x-wlpg3-detect"},
Line 667: {".wm", "video/x-ms-wm"},
Line 668: {".wma", "audio/x-ms-wma"},
Line 669: {".wmd", "application/x-ms-wmd"},
Line 670: {".wmf", "application/x-msmetafile"},
Line 671: {".wml", "text/vnd.wap.wml"},
Line 672: {".wmlc", "application/vnd.wap.wmlc"},
Line 673: {".wmls", "text/vnd.wap.wmlscript"},
Line 674: {".wmlsc", "application/vnd.wap.wmlscriptc"},
Line 675: {".wmp", "video/x-ms-wmp"},
Line 676: {".wmv", "video/x-ms-wmv"},
Line 677: {".wmx", "video/x-ms-wmx"},
Line 678: {".wmz", "application/x-ms-wmz"},
Line 679: {".wpl", "application/vnd.ms-wpl"},
Line 680: {".wps", "application/vnd.ms-works"},
Line 681: {".wri", "application/x-mswrite"},
Line 682: {".wrl", "x-world/x-vrml"},
Line 683: {".wrz", "x-world/x-vrml"},
Line 684: {".wsc", "text/scriptlet"},
Line 685: {".wsdl", "text/xml"},
Line 686: {".wvx", "video/x-ms-wvx"},
Line 687: {".x", "application/directx"},
Line 688: {".xaf", "x-world/x-vrml"},
Line 689: {".xaml", "application/xaml+xml"},
Line 690: {".xap", "application/x-silverlight-app"},
Line 691: {".xbap", "application/x-ms-xbap"},
Line 692: {".xbm", "image/x-xbitmap"},
Line 693: {".xdr", "text/plain"},
Line 694: {".xht", "application/xhtml+xml"},
Line 695: {".xhtml", "application/xhtml+xml"},
Line 696: {".xla", "application/vnd.ms-excel"},
Line 697: {".xlam", "application/vnd.ms-excel.addin.macroEnabled.12"},
Line 698: {".xlc", "application/vnd.ms-excel"},
Line 699: {".xld", "application/vnd.ms-excel"},
Line 700: {".xlk", "application/vnd.ms-excel"},
Line 701: {".xll", "application/vnd.ms-excel"},
Line 702: {".xlm", "application/vnd.ms-excel"},
Line 703: {".xls", "application/vnd.ms-excel"},
Line 704: {".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"},
Line 705: {".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"},
Line 706: {".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
Line 707: {".xlt", "application/vnd.ms-excel"},
Line 708: {".xltm", "application/vnd.ms-excel.template.macroEnabled.12"},
Line 709: {".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"},
Line 710: {".xlw", "application/vnd.ms-excel"},
Line 711: {".xml", "text/xml"},
Line 712: {".xmta", "application/xml"},
Line 713: {".xof", "x-world/x-vrml"},
Line 714: {".XOML", "text/plain"},
Line 715: {".xpm", "image/x-xpixmap"},
Line 716: {".xps", "application/vnd.ms-xpsdocument"},
Line 717: {".xrm-ms", "text/xml"},
Line 718: {".xsc", "application/xml"},
Line 719: {".xsd", "text/xml"},
Line 720: {".xsf", "text/xml"},
Line 721: {".xsl", "text/xml"},
Line 722: {".xslt", "text/xml"},
Line 723: {".xsn", "application/octet-stream"},
Line 724: {".xss", "application/xml"},
Line 725: {".xtp", "application/octet-stream"},
Line 726: {".xwd", "image/x-xwindowdump"},
Line 727: {".z", "application/x-compress"},
Line 728: {".zip", "application/x-zip-compressed"},
Line 729: #endregion
Line 730: };
Line 731:
Line 732: private string GetMimeType(string extension)
Line 733: {
Line 734: if (extension == null)
Line 735: {
Line 736: throw new ArgumentNullException("extension");
Line 737: }
Line 738:
Line 739: if (!extension.StartsWith("."))
Line 740: {
Line 741: extension = "." + extension;
Line 742: }
Line 743:
Line 744: string mime;
Line 745:
Line 746: return _mappings.TryGetValue(extension, out mime) ? mime : "application/octet-stream";
Line 747: }
Line 748:
Line 749: }
Line 750: }
|