替代方法可以从iPad或iPhone上发送电子邮件,而不UI(Alternative ways to

2019-09-24 00:45发布

我看到有很多方法可以在iOS设备和不使用MFMailComposeViewController类背景(没有UI)发送电子邮件。 最流行的例子是填写网上表格,并按提交按钮。 这里有最流行的方法我看到计算器..

(1)使用自己的SMTP客户端。 这种方法是为我工作,但在我的私人网络,但在我的公司场所不工作在公司的网络不允许我使用Gmail(公共电子邮件),并没有我们公司的邮件服务器的SMTP细节。 我在这里袭击了这种方法。

(2)使用CTCoreMessage&Three20框架(开源)。 但在这里我无法找到在哪里下载比git的,在我的电脑VLAN不允许其他GIT这个框架。 可能有人帮我找出Three20框架下载位置并分享我的示例代码。

(3)使用HTTP发布:发送电子邮件正文到服务器,并委派电子邮件发送到HTTP服务器。 如果这是简单的,然后有人可以帮助我如何设置用于发送电子邮件你自己的HTTP服务器。

任何人可以在任何寻找工作的示例代码帮助。 我在我的项目交付的结束。 发布此长回来。 没有回复直到现在。 任何人可以帮我请..

Answer 1:

我也许能提供第三种选择一些帮助,使用HTTP后 ,因为我做的一个项目一旦实现它。

首先,我用这个漂亮而简单的iOS类照顾发布的我。 接着,下面的iOS代码段应你展示它是如何做

NSString* from = @"sender@email";

NSString* to = @"receiver@email";

NSString* mailCc = @"cc@email";

NSString* message = @"my message"

NSString* subject = @"my subject";

NSURL* url = [NSURL URLWithString:@"http://yourtestsite.com/my_email_script.php"];

//these are $_POST variables sent, so 'from' would be $_POST['from']        
NSArray *keys = [[NSArray alloc] initWithObjects:@"from", @"to", @"cc", @"subject", @"message", nil];
NSArray *objects = [[NSArray alloc] initWithObjects:from, to, mailCc, subject, message, nil];  
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjects:objects forKeys:keys];


NSMutableURLRequest* request = [SimplePost urlencodedRequestWithURL:url andDataDictionary:dictionary];
NSURLResponse* response = [[NSURLResponse alloc] init];
NSError* error = [[NSError alloc] init];

NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: &response error: &error];

NSString* result = [[NSString alloc] initWithData:returnData encoding:NSStringEncodingConversionAllowLossy];

//I'm checking for 1 because my php script was set to write 1 to the page in case of success and 0 otherwise, so this is simply my implementation
if([result isEqualToString:@"1"]) {
    NSLog(@"success");
} else {
    NSLog(@"error");

}

对于PHP文件,这应该做的伎俩

$from = filter_var($_POST['from'], FILTER_SANITIZE_EMAIL);

$to = filter_var($_POST['to'], FILTER_SANITIZE_EMAIL);

$cc = filter_var($_POST['cc'], FILTER_SANITIZE_EMAIL);

$subject = htmlspecialchars(utf8_decode($_POST['subject']));

$message = utf8_decode($_POST['message']);

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'From: ' . $from . "\r\n";

$headers .= 'Cc: ' . $cc . "\r\n";

// Mail it
if(mail($to, $subject, $message, $headers)) {
    echo("1");
} else  {
    echo("0");

   }

请记住,我不是PHP的专家,因此代码可能会被提高,尤其是在安全性部分。

[编辑] PHP的邮件应该已经在大多数主要管理托管解决方案被启用,无论是廉价的共享账户,VPS或专用服务器。 但是,如果你打算送用这种方法邮件很多,则建议使用专用服务器。

然而,有电子邮件,可以发送和比更好的选择的限制mail功能。 你可以找到更多这方面的信息在这里 。

[后来编辑]看来作者删除SimplePost类。 然而,同一作者提出一个替代应该帮助,叫SimpleHTTPRequest 。 其余部分应保持不变



Answer 2:

我会考虑使用Mailgun ,它将使发送电子邮件更容易,一个月可处理高达10K是免费的。 它们允许你,如果你没有自己的使用自己的子域名,但可以很容易地建立自己与他们的合作。

其容易,因为在安装了cocoapod和添加5行代码左右。



文章来源: Alternative ways to send email without UI from ipad or iphone