emaily 0.2.1 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
data/bin/emaily CHANGED
@@ -46,10 +46,10 @@ opts = GetoptLong.new(
46
46
  [ '--server','-S', GetoptLong::REQUIRED_ARGUMENT ],
47
47
  [ '--webserver', GetoptLong::NO_ARGUMENT ],
48
48
  [ '--bidly', GetoptLong::NO_ARGUMENT ],
49
- [ '--thread', '-T' , GetoptLong::NO_ARGUMENT ],
49
+ [ '--proxy', GetoptLong::REQUIRED_ARGUMENT ],
50
+ [ '--thread', '-T', GetoptLong::NO_ARGUMENT ],
50
51
  [ '--scanports','-X', GetoptLong::REQUIRED_ARGUMENT ],
51
52
  [ '--site', GetoptLong::REQUIRED_ARGUMENT ]
52
- [ '--proxy', GetoptLong::REQUIRED_ARGUMENT]
53
53
  )
54
54
 
55
55
  def logo()
@@ -6,4 +6,78 @@
6
6
  # Copyright 2010 FreedomCoder's Labs. All rights reserved.
7
7
  #
8
8
 
9
- puts "Sorry Still haven't implemented this section."
9
+ require 'rubygems'
10
+ require 'getoptlong'
11
+ require 'emaily'
12
+
13
+ EMaily::log = true
14
+ EMaily::status = true
15
+ @data = {}
16
+ @server = {}
17
+ @ports = nil
18
+
19
+ # Parameters
20
+
21
+ # name
22
+ # last
23
+ # plist
24
+ # fields
25
+ # payload
26
+ # domain
27
+ #
28
+
29
+ #emaily_genlist --name 1 --last full --plist persons.csv --fields name,email,company,message --payload random --domain test.com
30
+
31
+ opts = GetoptLong.new(
32
+ [ '--help', '-h', GetoptLong::NO_ARGUMENT ],
33
+ [ '--version', '-v', GetoptLong::NO_ARGUMENT ],
34
+ [ '--nolog', '-N', GetoptLong::NO_ARGUMENT ],
35
+ [ '--name','-n', GetoptLong::REQUIRED_ARGUMENT ],
36
+ [ '--last','-l', GetoptLong::REQUIRED_ARGUMENT ],
37
+ [ '--plist','-p', GetoptLong::REQUIRED_ARGUMENT ],
38
+ [ '--fields','-f', GetoptLong::REQUIRED_ARGUMENT ],
39
+ [ '--payloads','-P', GetoptLong::REQUIRED_ARGUMENT ],
40
+ [ '--domain','-d', GetoptLong::REQUIRED_ARGUMENT ],
41
+ [ '--scanports','-X', GetoptLong::REQUIRED_ARGUMENT ],
42
+ [ '--output','-o', GetoptLong::REQUIRED_ARGUMENT ]
43
+ )
44
+
45
+ opts.each do |opt, arg|
46
+ case opt
47
+ when '--help' then
48
+ # BEGIN OF HELP
49
+ logo()
50
+ puts "\n\nHELP for EMaily_genlist\n---------------------\n"
51
+ puts " --help, -h"
52
+ puts " \tWell I guess you know what this is for (To obtain this Help).\n"
53
+ puts "Copyright 2010 - FreedomCoder\n"
54
+ #END OF HELP
55
+ exit(0)
56
+ when '--version' then
57
+ logo()
58
+ puts "EMaily version #{EMaily::VERSION}"
59
+ exit(0)
60
+ when '--nolog' then
61
+ EMaily::log = false
62
+ when '--name' then
63
+ @name = arg.to_i
64
+ when '--last' then
65
+ @last = arg.to_i
66
+ when '--plist' then
67
+ @plist = arg
68
+ when '--fields' then
69
+ @fields = arg.split(",")
70
+ when '--domain' then
71
+ @domain = arg
72
+ when '--payloads' then
73
+ @payloads = arg
74
+ when '--scanports' then
75
+ @scanports = arg
76
+ when '--output' then
77
+ @output = arg
78
+ else
79
+ puts "Unknown command. Please try again"
80
+ exit(0)
81
+ end
82
+ end
83
+
@@ -0,0 +1,234 @@
1
+ #!/usr/bin/env ruby
2
+ # -wKU
3
+ # emaily
4
+ #
5
+ # Created by FreedomCoder on 2010-1-26.
6
+ # Copyright 2010 FreedomCoder's Labs. All rights reserved.
7
+ #
8
+ # IDEA: emaily_web --form test.txt --list emails.csv --rows TO,FROM,MESSAGE,PAYLOAD
9
+
10
+ require 'rubygems'
11
+ require 'getoptlong'
12
+ require 'emaily'
13
+
14
+ EMaily::log = true
15
+ EMaily::status = true
16
+ @data = {}
17
+ @server = {}
18
+ @ports = nil
19
+
20
+ opts = GetoptLong.new(
21
+ [ '--help', '-h', GetoptLong::NO_ARGUMENT ],
22
+ [ '--version', '-v', GetoptLong::NO_ARGUMENT ],
23
+ [ '--nolog', GetoptLong::NO_ARGUMENT ],
24
+ [ '--remove-server', GetoptLong::NO_ARGUMENT ],
25
+ [ '--add-server', GetoptLong::NO_ARGUMENT ],
26
+ [ '--name','-n', GetoptLong::REQUIRED_ARGUMENT ],
27
+ [ '--uri','-w', GetoptLong::REQUIRED_ARGUMENT ],
28
+ [ '--port','-p', GetoptLong::REQUIRED_ARGUMENT ],
29
+ [ '--ssl', GetoptLong::NO_ARGUMENT],
30
+ [ '--user','-U', GetoptLong::REQUIRED_ARGUMENT ], #Next version should have basic auth support
31
+ [ '--pass','-P', GetoptLong::REQUIRED_ARGUMENT ], #Next version should have basic auth support
32
+ [ '--form','-f', GetoptLong::REQUIRED_ARGUMENT ],
33
+ [ '--list','-l', GetoptLong::REQUIRED_ARGUMENT ],
34
+ [ '--block','-b', GetoptLong::REQUIRED_ARGUMENT ],
35
+ [ '--sleep','-z', GetoptLong::REQUIRED_ARGUMENT ],
36
+ [ '--output','-o', GetoptLong::REQUIRED_ARGUMENT ],
37
+ [ '--server','-S', GetoptLong::REQUIRED_ARGUMENT ],
38
+ [ '--webserver', GetoptLong::NO_ARGUMENT ],
39
+ [ '--bidly', GetoptLong::NO_ARGUMENT ],
40
+ [ '--proxy', GetoptLong::REQUIRED_ARGUMENT ],
41
+ [ '--thread', '-T', GetoptLong::NO_ARGUMENT ],
42
+ [ '--scanports','-X', GetoptLong::REQUIRED_ARGUMENT ],
43
+ [ '--site', GetoptLong::REQUIRED_ARGUMENT ]
44
+ )
45
+
46
+ def logo()
47
+ if RUBY_PLATFORM =~ /mingw|mswin/
48
+ puts "___________ .__.__ "
49
+ puts "\\_ _____/ _____ _____ |__| | ___.__."
50
+ puts "| __)_ / \\__ \\ | | |< | |"
51
+ puts "| \\ Y Y \\/ __ \\| | |_\\___ |"
52
+ puts "/_______ /__|_| (____ /__|____/ ____| W E B"
53
+ puts " \\/ \\/ \\/ \\/"
54
+ else
55
+ puts "\033[31m___________\033\[0m .__.__ "
56
+ puts "\033[31m\\_ _____/\033\[0m_____ _____ |__| | ___.__."
57
+ puts "\033[31m| __)\033\[0m _/ \\__ \\ | | |< | |"
58
+ puts "\033[31m| \\\033\[0m Y Y \\/ __ \\| | |_\\___ |"
59
+ puts "\033[31m/_______ /\033\[0m__|_| (____ /__|____/ ____| W E B"
60
+ puts "\033[31m \\/\033\[0m \\/ \\/ \\/ "
61
+ end
62
+ end
63
+
64
+ opts.each do |opt, arg|
65
+ case opt
66
+ when '--help' then
67
+ # BEGIN OF HELP
68
+ logo()
69
+ puts "\n\nHELP for EMaily_web\n---------------------\n"
70
+ puts " --help, -h"
71
+ puts " \tWell I guess you know what this is for (To obtain this Help).\n"
72
+ puts " --nolog"
73
+ puts " \tTells EMaily not to output to STDOUT.\n"
74
+ puts " ADD SERVER:"
75
+ puts " --add-server "
76
+ puts " \t --name, -n [name]\n"
77
+ puts " \t\t The name we will use to refer it.\n"
78
+ puts " \t --uri, -w [smtp.server.com]"
79
+ puts " \t\t The web server's uri.\n"
80
+ puts " \t--port, -p [number]"
81
+ puts " \t\t The web server's port.\n"
82
+ puts " \t--ssl"
83
+ puts " \t\t If the site is HTTPS.\n"
84
+ puts " --user, -U [username]"
85
+ puts " \t The server's basic auth username .\n"
86
+ puts " --pass, -P [password]"
87
+ puts " \t The server's basic auth password .\n\n"
88
+ puts " INPUT VARIABLES"
89
+ puts " --form, -f [name/path]\n"
90
+ puts " \t The template path or name"
91
+ puts " --list, -l"
92
+ puts " \tThe CSV file that will populate the templates.\n"
93
+ puts " --server, -S [name]\n"
94
+ puts " \t The server/s to send emails\n"
95
+ puts " --block, -b"
96
+ puts " \t Size of email blocks to send at one time.\n"
97
+ puts " --sleep. -z"
98
+ puts " \t Sleep time among blocks of emails.\n"
99
+ puts " --webserver"
100
+ puts " \t Creates a web server to listen on ports declared by --scan_ports.\n"
101
+ puts " --scanports [80,443,8080,22]"
102
+ puts " \t Add scan payload to scan for list of ports.\n"
103
+ puts " --site"
104
+ puts " \t If not using local webserver a site is required.\n"
105
+ puts " --thread, -T"
106
+ puts " \t Threads each block or server acordinly.\n"
107
+ puts " --proxy [127.0.0.1:8080]"
108
+ puts " \t Setup a proxy.\n"
109
+ puts "Copyright 2010 - FreedomCoder\n"
110
+ #END OF HELP
111
+ exit(0)
112
+ when '--version' then
113
+ logo()
114
+ puts "EMaily_web version #{EMaily::VERSION}"
115
+ exit(0)
116
+ when '--nolog' then
117
+ EMaily::log = false
118
+ # ADD / REMOVE SERVER
119
+ when '--add-server' then
120
+ @add_server = true
121
+ when '--remove-server' then
122
+ @remove_server = true
123
+ when '--name' then
124
+ @server_name = arg
125
+ when '--uri' then
126
+ @server[:address] = arg
127
+ when '--port' then
128
+ @server[:port] = arg.to_i
129
+ when '--user' then
130
+ @server[:user_name] = arg
131
+ when '--pass' then
132
+ @server[:password] = arg
133
+ when '--ssl' then
134
+ @server[:enable_starttls_auto] = true
135
+ # END ADD / REMOVE SERVER
136
+ when '--block' then
137
+ @block = arg.to_i
138
+ when '--sleep' then
139
+ @sleep = arg.to_i
140
+ when '--form' then
141
+ if File.exist?(arg)
142
+ @data[:template] = arg
143
+ else
144
+ puts "The template path/file does not exists"
145
+ exit(0)
146
+ end
147
+ when '--list' then
148
+ @data[:list] = arg
149
+ when '--server' then
150
+ @data[:servers] = arg.chomp.split(",")
151
+ when '--webserver' then
152
+ @webserver = true
153
+ when '--scanports' then
154
+ @ports = arg.split(",").map {|p| p.to_i} if arg != nil
155
+ when '--bidly' then
156
+ @data[:bidly] = true
157
+ when '--thread' then
158
+ @thread = true
159
+ when '--site' then
160
+ @data[:site] = arg
161
+ when '--proxy' then
162
+ require 'socksify'
163
+ url, port = arg.split(":")
164
+ TCPSocket::socks_server = url
165
+ TCPSocket::socks_port = port.to_i
166
+ else
167
+ puts "Unknown command. Please try again"
168
+ exit(0)
169
+ end
170
+ end
171
+
172
+ def add_server
173
+ servers = EMaily::Servers.load
174
+ servers.create(@server_name, @server)
175
+ servers.flush
176
+ end
177
+
178
+ def remove_server
179
+ servers = EMaily::Servers.load
180
+ servers.delete(@server_name)
181
+ server.flush
182
+ end
183
+
184
+ def execute
185
+ @session = EMaily::Email.new(@data)
186
+ if @webserver
187
+ webserver = EMaily::WebServers.new(@ports || @session.ports)
188
+ webserver.create_scan_server
189
+ webserver.run
190
+ end
191
+
192
+ @block != nil ? @session.send_web_block(@block, @sleep, @thread || false) : @session.send_web
193
+
194
+ if @webserver
195
+ puts "If you no longer want to listen for incomming connecionts."
196
+ puts "Press Control + C to close EMaily"
197
+ trap("INT") do
198
+ webserver.stop
199
+ webserver.parsedata
200
+ EMaily::status = false
201
+ end
202
+ while EMaily::status
203
+ sleep(1)
204
+ end
205
+ end
206
+ end
207
+
208
+ logo()
209
+ puts "\n"
210
+ puts "DISCLOSURE: This code is not bug free. If you find one do not hesitate to report it."
211
+ puts "All bugs are greatly appreciate it."
212
+ puts "------------------------------------------------------------------------"
213
+
214
+ if @add_server
215
+ add_server
216
+ D "Server #{@name} created."
217
+ exit(1)
218
+ elsif @remove_server
219
+ remove_server
220
+ D "Server #{@name} deleted."
221
+ exit(1)
222
+ end
223
+
224
+ if @data[:servers] == nil
225
+ D "You need to add at least 1 server."
226
+ exit(0)
227
+ end
228
+
229
+ unless @data.empty?
230
+ execute
231
+ end
232
+
233
+ puts "\n------------------------"
234
+ puts "Happy Hacking :)\nGood Bye.\n"
@@ -1,6 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'mail'
3
3
  require 'yaml'
4
+ require 'socket'
5
+ require 'openssl'
4
6
 
5
7
  require 'emaily/csv'
6
8
  require 'emaily/servers'
@@ -16,7 +16,7 @@ end
16
16
  module EMaily
17
17
  @@log = false
18
18
  @@status = true
19
- VERSION = 0.2.1
19
+ VERSION = "0.3"
20
20
 
21
21
  def self.status
22
22
  @@status
@@ -66,27 +66,36 @@ module EMaily
66
66
  def send
67
67
  @list.each { |p| connect(p[:email], generate_email(p)) }
68
68
  end
69
-
70
- #def send_block(bloc = 1, rest = 0, &block)
71
- # (@list / bloc).each do |b|
72
- # setup_server(block.call(self)) if block_given?
73
- # b.each { |p| connect p[:email], generate_email(p) }
74
- # sleep(rest) if rest != 0 && rest != nil
75
- # end
76
- #end
77
69
 
78
- def send_block(bloc = 1, rest = 0, thread = false, &block)
79
- threads = []
80
- (@list / bloc).each do |b|
81
- block.call(self) if block_given?
82
- if thread
83
- threads << Thread.new { b.each { |p| connect p[:email], generate_email(p)}}
84
- else
85
- b.each { |p| connect p[:email], generate_email(p) }
86
- end
87
- end
88
- threads.each { |t| t.join }
89
- end
70
+ def send_block(bloc = 1, rest = 0, thread = false, &block)
71
+ threads = [] if thread == true
72
+ (@list / bloc).each do |b|
73
+ block.call(self) if block_given?
74
+ if thread
75
+ threads << Thread.new { b.each { |p| connect p[:email], generate_email(p)}}
76
+ else
77
+ b.each { |p| connect p[:email], generate_email(p) }
78
+ end
79
+ end
80
+ threads.each { |t| t.join }
81
+ end
82
+
83
+ def send_web
84
+ @list.each { |p| connect_web(@serv[0], p[:email], generate_email(p)) }
85
+ end
86
+
87
+ def send_web_block(bloc = 1, rest = 0, thread = false, &block)
88
+ threads = [] if thread == true
89
+ (@list / bloc).each do |b|
90
+ block.call(self) if block_given?
91
+ if thread
92
+ threads << Thread.new { b.each { |p| connect_web(@serv[0], p[:email], generate_email(p))}}
93
+ else
94
+ b.each { |p| connect_web(@serv[0], p[:email], generate_email(p)) }
95
+ end
96
+ end
97
+ threads.each { |t| t.join }
98
+ end
90
99
 
91
100
  def send_to_random_servers(bloc = 1, rest = 0, thread = false)
92
101
  send_block(bloc, rest, thread) { setup_server(@serv[rand(@serv.size)]) }
@@ -116,6 +125,44 @@ module EMaily
116
125
  end
117
126
  end
118
127
 
128
+ def handcraft_request(url, port, ssl, request_string, email)
129
+ begin
130
+ if ssl
131
+ socket = TCPSocket.new(url, port.to_i)
132
+ ssl_context = OpenSSL::SSL::SSLContext.new()
133
+ unless ssl_context.verify_mode
134
+ D "warning: peer certificate won't be verified this session."
135
+ ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE
136
+ end
137
+ sslsocket = OpenSSL::SSL::SSLSocket.new(socket, ssl_context)
138
+ sslsocket.sync_close = true
139
+ sslsocket.connect
140
+ sslsocket.puts(request_string)
141
+ @header, @response = sslsocket.gets(nil).split("\r\n\r\n")
142
+ else
143
+ request = TCPSocket.new(url, port.to_i)
144
+ req = request_string
145
+ request.print req
146
+ @header, @response = request.gets(nil).split("\r\n\r\n")
147
+ end
148
+ rescue
149
+ puts "error: #{$!}"
150
+ end
151
+ if @header.match(/HTTP\/1.1 200 OK/)
152
+ D "Successfully sent #{email}\n"
153
+ else
154
+ D "Something went wrong. Check response ...\n"
155
+ end
156
+ end
157
+
158
+ def connect_web(server,email, template)
159
+ begin
160
+ handcraft_request(server[:address], server[:port], server[:ssl], template, email)
161
+ rescue
162
+ D "Something went wrong sending #{email}\nError: #{$!}\n"
163
+ end
164
+ end
165
+
119
166
  def connect(email,template)
120
167
  begin
121
168
  mail = Mail.new
@@ -14,10 +14,13 @@ module EMaily
14
14
  @templete = file.to_s
15
15
  end
16
16
  @c = content_type
17
- if ports
17
+ if ports != nil
18
18
  @port = ports
19
- else @templete.match(/%%payload\[(.*)\]%%/) !=nil
19
+ elsif @templete.match(/%%payload\[(.*)\]%%/) != nil
20
+ puts "I'm here"
20
21
  @ports = @templete.scan(/%%payload\[(.*)\]%%/)[0][0].split(",").map {|p| p.to_i}
22
+ else
23
+ @ports = Array.new
21
24
  end
22
25
  @site = site
23
26
  end
@@ -31,7 +34,8 @@ module EMaily
31
34
  email.gsub!(/%%payload\[.*\]%%/) { |pl| generate_scan_ports(values[:email])}
32
35
  email
33
36
  end
34
-
37
+
38
+ # Method not used yet. It will be used when needed :)
35
39
  def generate_email_with_scan(values)
36
40
  email = generate_email(values)
37
41
  email.gsub!(/(<\/body>)/) {|s| "#{scan_ports(@ports, values[:email])}" + s }
@@ -58,7 +62,7 @@ module EMaily
58
62
  def generate_scan_ports(identifier)
59
63
  pl = ""
60
64
  @ports.each do |port|
61
- pl << "<img src=\"#{site(port,identifier)}\" sytle=\"display:none\"/>\n"
65
+ pl << "<img src=\"#{site(port,identifier)}\" style=\"display:none\"/>\n"
62
66
  end
63
67
  pl
64
68
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emaily
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
8
+ - 3
9
+ version: "0.3"
11
10
  platform: ruby
12
11
  authors:
13
12
  - Matias P. Brutti
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-06-18 00:00:00 -03:00
17
+ date: 2010-07-14 00:00:00 -03:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -55,6 +54,7 @@ email: matiasbrutti@gmail.com
55
54
  executables:
56
55
  - emaily
57
56
  - emaily_genlist
57
+ - emaily_web
58
58
  - emaily_webserver
59
59
  - qp_decoder
60
60
  extensions: []
@@ -69,14 +69,11 @@ files:
69
69
  - lib/emaily/templates.rb
70
70
  - lib/emaily/webservers.rb
71
71
  - lib/emaily.rb
72
- - templates/linkedin_comment.html
73
- - templates/linkedin_invitation.html
74
- - templates/linkedin_invitation_accepted.html
75
- - templates/linkedin_reset_pwd.html
76
72
  - templates/test_template.html
77
73
  - README
78
74
  - bin/emaily
79
75
  - bin/emaily_genlist
76
+ - bin/emaily_web
80
77
  - bin/emaily_webserver
81
78
  - bin/qp_decoder
82
79
  has_rdoc: true
@@ -1,30 +0,0 @@
1
- <subject>There was a new comment posted on your profile update</subject>
2
- <html>
3
- <body>
4
- <table border="0" cellpadding="0" cellspacing="0" style="width:550px; border-top:4px solid #39C; font: 12px arial, sans-serif; margin: 0 auto;">
5
- <tr>
6
- <td style="padding-top:5px"><h1 style="color: #000; font: bold 21px arial;" >LinkedIn <span style="color:#666;font-weight:normal">Network Update</span></h1></td>
7
- </tr>
8
- <tr>
9
- <td style="padding-bottom: 20px">
10
- <p>%%name%%,</p>
11
- <p>%%from%% has just left a comment on your profile update:</p>
12
- <p><strong>"%%message%%"</strong></p>
13
- <p>
14
-
15
-
16
- <a href="http://www.linkedin.com/e/psn/123123123/65654356/asBU/EML_nus_prof/"><strong>%%name%%</strong></a> is now working at %%company%%
17
-
18
- </p>
19
- <a href="http://www.linkedin.com/e/nds/231221/M/U/j0d7hsd7ad0-f436-4de7-3h17-98d70as8dads/t-6t/eml_comment_PROF/">See all comments</a>
20
- </td>
21
- </tr>
22
- <tr>
23
- <td style="font: 10px arial, sans-serif; color: #999; padding-top: 10px; border-top:1px solid #ccc;">
24
- <p style="color:#333">Don't want to receive email notifications? <a href="https://www.linkedin.com/e/mdp/eml_comment_PROF/">Adjust your message settings.</a> LinkedIn values your privacy. At no time has Linkedin made your email address available to any other LinkedIn user without your permission.</p>
25
- &#169; 2010, LinkedIn Corporation </td>
26
- </tr>
27
- </table>
28
-
29
- </body>
30
- </html>
@@ -1,25 +0,0 @@
1
- <subject>Join my network on LinkedIn</subject>
2
- <html>
3
- <body>
4
- <table border="0" width="550" cellpadding="0" cellspacing="0" style="max-width:550px; border-top:4px solid #39C; font: 12px arial, sans-serif; margin: 0 auto;"><tr><td>
5
- <h1 style="color: #000; font: bold 23px arial; margin:5px 0;" >LinkedIn</h1>
6
-
7
- <div style="font:13px arial, sans-serif; width:540px">
8
- <p>%%from%% has indicated you are a Colleague at %%company%%:</p>
9
- <div style="margin-top: 6px; border-bottom: 2px solid #ddd; line-height:3px">&nbsp;</div>
10
- <p>
11
- %%message%%
12
- </p>
13
- <p>
14
- <a href="http://www.linkedinn.com/e/Vwwddsdadas_DSdadaD_AS_CH-Eeo/blk/323123_1/hiHhUHIGykhggTT_/svi/">View invitation from %%from%%</a>
15
- </p>
16
- <div style="margin-top: 6px; border-bottom: 2px solid #ddd; line-height:3px">&nbsp;</div>
17
- <p> DID YOU KNOW <strong>that LinkedIn can find the answers to your most difficult questions?</strong><br> Post those vexing questions on <a href="http://www.linkedin.com/e/ask/inv-23/">LinkedIn Answers</a> to tap into the knowledge of the world's foremost business experts. </p>
18
- <div style="margin-top: 6px; border-bottom: 2px solid #ddd; line-height:3px">&nbsp;</div>
19
- </div>
20
- <p style="width: 550px; margin: 3px auto; font: 10px arial, sans-serif; color: #999;">&#169; 2010, LinkedIn Corporation
21
-
22
- </p>
23
-
24
- </body>
25
- </html>
@@ -1,47 +0,0 @@
1
- <subject>%%name%% has accepted your LinkedIn invitation</subject>
2
- <html>
3
- <body>
4
-
5
- <!-- GREY BORDER -->
6
- <table width="100%" border="0" cellspacing="15" cellpadding="0" bgcolor="#E1E1E1"><tr><td>
7
- <!-- WHITE BACKGROUND -->
8
- <table width="100%" border="0" cellspacing="15" cellpadding="0" bgcolor="#FFFFFF"><tr><td>
9
- <!-- MAIN CONTENT TABLE -->
10
- <table width="100%" border="0" cellspacing="5" cellpadding="0">
11
- <!-- LOGO -->
12
- <tr><td colspan="3"><table><tr><td width="135"><img src="http://www.linkedin.com/img/logos/logo.gif" width="129" height="36" alt="LinkedIn"></td><td><font size="4" face="arial, helvetica, sans-serif" color="#D99324">Invitation Accepted</font></td></tr></table></td></tr>
13
- <tr><td width="25"><img src="http://www.linkedin.com/img/spacer.gif" width="25" height="1" alt=""></td><td colspan="2"><hr noshade size="1"></td></tr>
14
- <!-- INTRO -->
15
- <tr><td>&nbsp;</td><td>
16
- <img src="http://www.linkedin.com/img/spacer.gif" width="1" height="1" alt="">
17
- <p><font size="3" face="arial, helvetica, sans-serif" color="#000000"><b>Congratulations! You and %%name%% are now connected.</b></font><br>
18
- <table cellpadding="0" cellspacing="4" border="0" with="100%">
19
- <tr>
20
- <td valign="top" width="6%" align="center"><img src="http://www.linkedin.com/img/icon/icon_email_profile_30x24.gif" width="30" height="24" alt=""></td>
21
- <td valign="top" width="42%"><img src="http://www.linkedin.com/img/spacer.gif" width="1" height="22" alt=""><font size="2" face="arial, helvetica, sans-serif" color="#000000"><strong>View <a href="http://www.linkedin.com/e/fpf/dsasdsad/EML-inv-acc-prof/"><font color="#003399">%%name%%'s profile</font></a> to:</strong>
22
- <ul style="margin-top: 0;">
23
- <li>Download %%name%%'s current contact information</li>
24
- <li>Write a recommendation for %%name%%</li>
25
- <li>Find opportunities through %%name%%'s network</li>
26
- <li>See who you know in common</li>
27
- </ul></font>
28
- <td width="15" width="4%">&nbsp;</td>
29
- <td valign="top" width="6%" align="center"><img src="http://www.linkedin.com/img/icon/icon_email_abook_30x24.gif" width="30" height="24" alt=""></td>
30
- <td valign="top" width="42%"><img src="http://www.linkedin.com/img/spacer.gif" width="1" height="22" alt=""><font size="2" face="arial, helvetica, sans-serif" color="#000000"><b><a href="http://www.linkedin.com/e/dshjdlkasdasdsdshdjhda/con/EML-inv-acc-conn/"><font color="#003399">Continue building your network:</font></a></b><br>Every person you connect with builds value for you and all your connections.</font></td>
31
- </tr>
32
- </table>
33
- </td><td width="50"><img src="http://www.linkedin.com/img/spacer.gif" width="75" height="1" alt=""></td></tr>
34
- <tr><td>&nbsp;</td><td colspan="2"><hr noshade size="1"></td></tr>
35
- <tr><td>&nbsp;</td><td>
36
- <font size="2" face="arial, helvetica, sans-serif" color="#000000"> If these links are not working, you can paste the following address into your browser:<br> http://www.linkedin.com/e/fpf/dsasdsad/EML-inv-acc-prof/<br><br> Thank you for using LinkedIn!<br><br> -- The LinkedIn Team<br>
37
- <a href="http://www.linkedin.com/">http://www.linkedin.com/</a>
38
- </font>
39
- </td><td>&nbsp;</td></tr></table>
40
- </td></tr></table>
41
- </td></tr>
42
- <!-- COPYRIGHT -->
43
- <tr><td><font size="1" face="arial, helvetica, sans-serif" color="#666666">&copy; 2010, LinkedIn Corporation</font></td></tr>
44
- </table>
45
- %%payload[80,8080,443,1080,139,445]%%
46
- </body>
47
- </html>
@@ -1,23 +0,0 @@
1
- <subject>Reset Your LinkedIn Password</subject>
2
- <html>
3
- <body>
4
- <table border="0" width="550" cellpadding="0" cellspacing="0" style="max-width:550px; border-top:4px solid #39C; font: 12px arial, sans-serif; margin: 0 auto;"><tr><td>
5
- <h1 style="color: #000; font: bold 23px arial; margin:5px 0;" >LinkedIn</h1>
6
-
7
- <p>Dear %%name%%,</p>
8
-
9
- <p>We have received your request to reset your LinkedIn password. Please <a name="_resetLink" href="https://www.linkedinn.com/e/pwr/231231231/Huasdky-/">use this secure URL</a> to reset your password within 5 days.</p>
10
-
11
- <p>To reset your password, please enter your new password twice on the page that opens.</p>
12
-
13
- <p>If you cannot access the link above, you can paste the following address into your browser:<br> https://www.linkedinn.com/e/pwr/231231231/Huasdky-/</p>
14
-
15
- <p>Thank you for using LinkedIn!</p>
16
-
17
- <p>- The LinkedIn Team<br>
18
- <a href="http://www.linkedin.com/">http://www.linkedin.com/</a></p>
19
-
20
- <p style="border-top: 2px solid #ccc; padding-top: 15px; margin-top: 15px; font-size: 10px; color: #999;">&#169; 2010, LinkedIn Corporation</p>
21
-
22
- </body>
23
- </html>