emaily 0.2.1 → 0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>